首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Joda时间解析包含时区的日期

如何使用Joda时间解析包含时区的日期
EN

Stack Overflow用户
提问于 2009-08-25 09:56:25
回答 2查看 37.5K关注 0票数 54

这段代码总是将日期解析到当前时区,而不是解析到正在解析的字符串中的时区。

代码语言:javascript
复制
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

它输出:

代码语言:javascript
复制
dateTime = 2009-08-24T04:36:46.000+02:00

然而,我期望:

代码语言:javascript
复制
dateTime = 2009-08-24T04:36:46.000+10:00

你知道我做错了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-25 10:19:08

好的,进一步的谷歌搜索给了我自己的问题的答案:使用withOffsetParsed(),如下所示:

代码语言:javascript
复制
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");

这是可行的。

票数 76
EN

Stack Overflow用户

发布于 2013-05-04 10:25:20

您还可以选择:

代码语言:javascript
复制
// parse using the Paris zone
DateTime date = formatter.withZone(DateTimeZone.forID("Europe/Paris")).parseDateTime(str);
票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1327229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档