JodaTime夏令时错误

时间:2012-12-07 18:26:59

标签: java jodatime dst

我想从ISO8601字符串创建一个DateTime对象(例如,2012-11-05T07:00:00+0000)。这是代码:

...
DateTime day = new DateTime(dateStr);
System.out.println(dateStr + "=>" + day);

我得到了这些结果:

...
2012-11-04T07:00:00+0000=>2012-11-04T00:00:00.000-07:00
2012-11-05T07:00:00+0000=>2012-11-04T23:00:00.000-08:00
2012-11-06T08:00:00+0000=>2012-11-06T00:00:00.000-08:00
...

11-0411-06是正确的,但11-05是错误的。怎么解决?我在北美西海岸。

1 个答案:

答案 0 :(得分:5)

11-05错在哪种方式? 11月4日当地时间凌晨2点(即UTC时间上午9点),west coast time从UTC-7变为UTC-8。

现在11月5日上午7点UTC,这是你的第二行,那个时间点之后,因此它是UTC-8的正确...因此当地时间是晚上11点11月4日,完全如图所示。

Joda Time就在这里(不出所料)。