用户登录
用户注册

分享至

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

  • 作者: 张庄刘二蛋
  • 来源: 51数据库
  • 2022-10-20

问题描述

这段代码总是将日期解析为当前时区,而不是解析字符串中的时区.

This snippet of code always parses the date into the current timezone, and not into the timezone in the string being parsed.

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

任何想法我做错了什么?

Any ideas what I'm doing wrong?

推荐答案

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

OK, further Googling gave me the answer to my own question: use withOffsetParsed(), as so:

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

这行得通.

软件
前端设计
程序设计
Java相关