我有一个字符串日期:
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小时来自哪里?
答案 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