Java日期格式问题?

时间:2013-10-31 15:53:56

标签: java jodatime isodate

我有一个字符串日期:

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小时来自哪里?

2 个答案:

答案 0 :(得分:2)

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

DateTimeFormatter myParser = ISODateTimeFormat.dateTimeNoMillis().withZoneUTC();

答案 1 :(得分:1)

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

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

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