wil*_*ied 14 java timezone datetime date jodatime
我有两个时间戳,以两种不同的格式描述相同的时刻.
2010-10-03 18:58:07和2010-10-03T16:58:07.000+02:00.
我使用Joda-Time解析时间戳和两个不同的日期格式化程序.最后,我希望有两个DateTime对象,它们在同一时刻是相等的.
DateFormatter提供了几种控制时区和语言环境的方法,但我无法使其工作.
这是我想要的代码:
final String date1 = "2010-10-03 18:58:07"; // Europe/Berlin local time
final DateTimeFormatter formatter1 = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
final DateTime dateTime1 = formatter1.parseDateTime(date1);
final String date2 = "2010-10-03T16:58:07.000+02:00"; // Europe/Berlin local time with time zone
final DateTimeFormatter formatter2 = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
final DateTime dateTime2 = formatter2.parseDateTime(date2);
Assert.assertTrue(dateTime1.isEqual(dateTime2));
Run Code Online (Sandbox Code Playgroud)
如果您的默认时间是欧洲/柏林,2010-10-03 18:58:07对应于2010-10-03T16:58:07.000 + 00:00.
您可能会误解字符串表示中的时区字段.您的时间戳2010-10-03T16:58:07.000 + 02:00意味着"在格林尼治标准时间偏离+2小时的时区是16:58:07",或者用其他措辞"现在是16 :58:07在柏林".我认为你预计这意味着它是格林尼治标准时间16:58:07?
| 归档时间: |
|
| 查看次数: |
16311 次 |
| 最近记录: |