此代码段始终将日期解析为当前时区,而不是解析为字符串中的时区。
final DateTimeFormatter df = DateTimeFormat .forPattern("EEE MMM dd HH:mm:ss 'GMT'Z yyyy"); final DateTime dateTime = df .parseDateTime("Mon Aug 24 12:36:46 GMT+1000 2009"); System.out.println("dateTime = " + dateTime); // outputs dateTime = 2009-08-24T04:36:46.000+02:00
它输出:
dateTime = 2009-08-24T04:36:46.000+02:00
而我期望:
dateTime = 2009-08-24T04:36:46.000+10:00
有什么想法我做错了吗?
好吧,进一步Google搜索给了我自己的问题的答案:use withOffsetParsed(),如下所示:
withOffsetParsed()
final DateTimeFormatter df = DateTimeFormat .forPattern("EEE MMM dd HH:mm:ss 'GMT'Z yyyy"); final DateTime dateTime = df.withOffsetParsed() .parseDateTime("Mon Aug 24 12:36:46 GMT+1000 2009");
这有效。