Joda日期时间gmt问题



我想直接在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);

期望值
  1. 2014-05-16T07:00:00.000+00:00

实际值

  1. 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"));

最新更新