0

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、間違っています。修正方法は?私は北米の西海岸にいます。

4

1 に答える 1

5

11-05 はどのように間違っていますか? 11 月 4 日午前 2 時 (UTC の午前 9 時) に、西海岸時間は UTC-7 から UTC-8 になりました。

2 行目の 11 月 5 日の午前 7 時 (UTC) はその時点より後であるため、UTC-8 であることが正しいため、現地時間は 11 月 4 日の午後 11 時であり、表示されているとおりです。

Joda Time はここにあります (当然のことながら)。

于 2012-12-07T18:30:51.533 に答える