3

我有一个字符串日期:

2013-05-23T00:00:00+00:00

我想使用ISODateTimeFormat类格式化它:

DateTimeFormatter myParser = ISODateTimeFormat.dateTimeNoMillis();
myDate = myParser.parseDateTime(myDateAsString).toDate();

格式化的日期值为:

Thu May 23 01:00:00 BST 2013

那1小时从哪里来?

4

2 回答 2

2

DateTimeFormatter使用的是当地时区。您需要创建一个使用 UTC 时区的格式化程序,如下所示:

DateTimeFormatter myParser = ISODateTimeFormat.dateTimeNoMillis().withZoneUTC();
于 2013-10-31T15:58:04.673 回答
1

请注意时区偏移量,它的 BST 偏移量相对于 GMT 为 +1。这可能与您所在的时区有关。但是,BST 结束于 4 天前。

一句话,为什么不使用 ISO8601 时间格式?我个人觉得它更易于管理。

http://en.wikipedia.org/wiki/British_Summer_Time http://en.wikipedia.org/wiki/ISO_8601

于 2013-10-31T15:56:55.360 回答