我想直接在joda github上提出问题,但有一个提示,我应该首先在stackoverflow上问它。
如果您尝试在格林威治标准时区(英国)使用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有问题。
答案 0 :(得分:0)
英国时间不是GMT ...如果您想要英国时间,请使用完整的时区名称:Europe/London
。
答案 1 :(得分:0)
根据一年中的时间,英国可能会参加GMT或BST。时区可以如下所述: -
DateTime dt = formatter.parseDateTime("2014-02-16T07:00:00.000Z").withZone(DateTimeZone.forID("Europe/London"));