我想直接在joda github上提出问题,但是有一个提示,我应该首先在stackoverflow上问它。
如果您尝试在格林威治标准时区(UK)中使用joda DateTime对象,您将获得错误的DateTime值
复制
步骤像这样写方法
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z");
DateTime dt = formatter.parseDateTime("2014-02-16T07:00:00.000Z");
System.out.println(dt);
期望值-
2014-05-16T07:00:00.000+00:00
实际值
-
2014-05-16T07:00:00.000+Z
在英国,时间在每年的3月29日改变。这是一年中的最后一天,时间是+00:00。从3月30日到下次更改时间是+01:00。
如果认为joda处理+00:00 gmt有问题
英国格林尼治时间时间不是
…如果您想使用英国时间,请使用完整的时区名称:Europe/London
。
UK可以根据一年中的时间使用GMT或BST。可以像下面这样提到时区:-
DateTime dt = formatter.parseDateTime("2014-02-16T07:00:00.000Z").withZone(DateTimeZone.forID("Europe/London"));