JodaTime夏令时错误

DrX*_*eng 0 java jodatime dst

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

...
DateTime day = new DateTime(dateStr);
System.out.println(dateStr + "=>" + day);
Run Code Online (Sandbox Code Playgroud)

我得到了这些结果:

...
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
...
Run Code Online (Sandbox Code Playgroud)

11-04并且11-06是正确的,但是11-05错了.怎么解决?我在北美西海岸.

Jon*_*eet 5

以什么方式是11-05错了?11月4日当地时间凌晨2点(即UTC时间上午9点),西海岸时间从UTC-7变为UTC-8.

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

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