1
我試圖用joda DateTime創建一個固定的日期時間,基於代碼執行時間(當前系統時間)產生出人意料的不同結果。 下面是代碼DateTime API根據代碼執行時間產生不同的結果
DateTimeZone.setDefault(DateTimeZone.forID("Europe/Brussels"));
DateTime t1 = new DateTime().withDate(2012, OCTOBER, 28).withTime(2, 0, 0, 50);
//Note that 2012, OCTOBER, 28, 02:00:00 is a DST swtich time in Belgium
的代碼產生兩種不同的結果(時區偏移的變化)
//Please note that the local time zone is CET.
00:00:00:00 > execution time < 03:00:00 -> 2012-10-28T02:00:00.050+02:00
03:00:00:00 >= execution time =< 24:00:00 -> 2012-10-28T02:00:00.050+01:00
在另一方面,使用構造產生相同的結果
DateTimeZone.setDefault(DateTimeZone.forID("Europe/Brussels"));
DateTime dateTime = new DateTime(2012, OCTOBER, 28, 2, 0, 0, 50); //gives 2012-10-28T02:00:00.050+02:00
我有一個印象,應該使用構造函數而不是withDate/Time方法。但我有點困惑,爲什麼DateTime無法處理這個問題?