2011-12-02 176 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()