2011-12-02 164 views
1

我將日期「22/11/11」解析爲名爲s的DateTime對象。當我做s.getDayOfMonth()時,它給了我22這是正確的。但是,當我將DateTime對象轉換爲Date對象並嘗試使用s.toDate()。getDate()獲取日期時,它返回24,這是不正確的。有誰知道爲什麼會發生這種情況?從日期時間(Joda時間)到日期(java.util)的轉換

+0

請複製相關代碼。此外,如果您打印s.toDate(),您看到了什麼? – leonbloy

回答

5

Joda-Time DateTime.toDate()方法在毫秒瞬間轉換爲java.util.Datejava.util.Date.getDate()方法使用本地默認時區返回其值,而DateTime.getDayOfMonth()使用存儲在DateTime對象中的時區。如果兩個時區不同,你可能會看到不同,解釋你觀察到的22/24。

要進一步瞭解,請打印DateTime的時區,以及java.util.Date使用的默認Java區域TimeZone.getDefault()