【问题标题】:Joda DateTime conversion localeJoda DateTime 转换语言环境
【发布时间】:2012-05-04 19:09:16
【问题描述】:

我试图在 Joda DateTime 中转换毫秒。 米利斯是 1338501600000 我使用了在线转换器和其他库,所有结果都是 1338501600000 毫秒是 Fri Jun 01 2012 00:00:00 GMT+0200 (CEST)

在 Joda 中,结果是:2012-05-31T22:00:00.000Z

为什么?


已解决:

long millis = 1338501600000;
TimeZone tz = TimeZone.getTimeZone("GMT+2:00");
DateTimeZone dtz = DateTimeZone.getDefault();
dtz.setDefault(DateTimeZone.forTimeZone(tz));
DateTime rightDate = new DateTime(millis,dtz);

【问题讨论】:

  • Z 在日期末尾是 GMT+0000,因此与 GMT+0200 相差 2 小时。

标签: java jodatime


【解决方案1】:

这些是相同的日期。如果您从 GMT+0200 日期减去 2 小时,您将获得 Joda 结果,该结果采用 GMT 时区。

单个日期(即时)可以用不同的方式表示为字符串,并且表示取决于用于生成此表示的时区。

【讨论】:

【解决方案2】:

请注意,Fri Jun 01 2012 00:00:00 GMT+0200 和 2012-05-31T22:00:00.000Z 是同一时刻,只有第一个显示在时区 GMT+0200 和UTC 中的第二个(这是 Z 表示的)。

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多