小编典典

如何使用Joda Time解析包括时区在内的日期

java

此代码段始终将日期解析为当前时区,而不是解析为字符串中的时区。

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

有什么想法我做错了吗?


阅读 225

收藏
2020-10-09

共1个答案

小编典典

好吧,进一步Google搜索给了我自己的问题的答案:use 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");

这有效。

2020-10-09