当前位置: 首页 > 面试题库 >

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

壤驷棋
2023-03-14
问题内容

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

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(),如下所示:

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");

这有效。



 类似资料:
  • 问题内容: 我想转换为 下面尝试的方法,但执行效果不佳(返回nil)。 如何转换此日期格式? 问题答案: Xcode 8•Swift 3 您需要转义“ T”并使用适当的时区符号。请注意,这取决于您的日期字符串代表带Z 还是不带+00:00 的UTC(距格林尼治标准时间为零秒)时区: 如果您需要一些参考,可以使用以下方法:

  • 问题内容: 我有两个时间戳,它们以两种不同的格式描述同一时刻。 和。 我用Joda-Time用两个不同的日期格式解析时间戳。最后,我想有两个DateTime对象,它们在同一时刻相同。 DateFormatter提供了几种控制时区和语言环境的方法,但我无法使其正常工作。 这是我想工作的代码: 问题答案: 如果您的默认时间zome是Europe / Berlin,则2010-10-03 18:58:0

  • 问题内容: 我有一个日期字符串,其格式为‘2009/05/13 19:19:30 -0400’。似乎Python的早期版本可能在strptime中支持尾随时区规范的%z格式标签,但2.6.x似乎已将其删除。 将这个字符串解析为datetime对象的正确方法是什么? 问题答案: 我有一个日期字符串,其格式为‘2009/05/13 19:19:30 -0400’。似乎Python的早期版本可能在str

  • 我试图用android的JodaTime库解析ISO格式的日期,但得到了错误的时区偏移量。 我的默认时区是“欧洲/莫斯科”,但结果是“1990-05-04T00:00:00.000 0400”,而它应该是“1990-05-03T23:00:00.000 0300”。Android版本是KitKat。 我做错了什么?

  • 我在这里有我的日期来自我的API,我试图在其中解析到。我使用intl包尝试了以下方法,但我遇到了错误 未处理的异常:格式异常:尝试从 2020/07/07 09:47:54 在位置 20 读取 有人知道这里出了什么问题吗?

  • 这是我从服务器返回的日期格式: 4月05 2016 23:59:00星期二GMT-0700(PDT) 这是我到目前为止所拥有的:“EEE MMM dd yyyy HH: mm: ss'GMT'Z(zzz)” 哪些字符解析有困难?