Joda DateTime转换区域设置

时间:2012-05-04 10:08:43

标签: java jodatime

我试图在Joda DateTime中转换毫秒数。 Millis 1338501600000 我使用在线转换器和其他库,结果是 1338501600000 毫秒是 2012年6月1日星期五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);

2 个答案:

答案 0 :(得分:2)

这些日期相同。如果从GMT + 0200日期减去2小时,则会获得Joda结果,该结果位于GMT时区。

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

答案 1 :(得分:0)

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