我想从字符串ISO8601创建一个日期时间对象(例如,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-04
和11-06
是正确的,但11-05
是错误的。如何解决?我在北美西海岸。
11-05 在哪些方面是错误的?当地时间 11 月 4 日凌晨 2 点(即世界标准时间上午 9 点),西海岸时间从 UTC-7 变为 UTC-8。
现在 11 月 5 日上午 7 点 UTC,这是您的第二行,在该时间点之后,因此它是正确的 UTC-8...因此,当地时间是 11 月 4 日晚上 11 点,与所示完全相同。
乔达时间就在这里(不出所料)。