2013-03-15 46 views
3

試圖執行但日期比較:的Java的SimpleDateFormat轉換

date1=new SimpleDateFormat("yy-MM-dd HH").parse("12-03-25 02")等於

date2=new SimpleDateFormat("yy-MM-dd HH").parse("12-03-25 03")

問題是什麼?以date1.getHour我得到3

想法,歡迎

+1

我爲'date1.getHours()'得到'2'。必須有一些其他代碼影響你的結果。 – matts 2013-03-15 16:37:02

+2

無法在JDK 6上重現,顯示實際的程序? – Affe 2013-03-15 16:37:21

+1

我也在jdk中獲得2 7 – Pragnani 2013-03-15 16:37:53

回答

4

2012年3月的第25是天哪裏夏令時開關做的是許多國家,通常在凌晨2點。所以2AM和3AM在今天同一時間在您的語言環境中。這就是你看到這個的原因。

+0

那麼如何處理這樣的問題呢? (與我的國家檢查,其行軍25) – 2013-03-15 16:52:32

+1

良好的捕獲。對於其他人:您可以在構造SimpleDateFormat之前通過調用'TimeZone.setDefault(TimeZone.getTimeZone(「CET」));'來確認。 – matts 2013-03-15 16:57:27

+1

這不是問題。結果是正確的。 2AM和3AM代表同一時刻,因此打印2或3無關緊要。 – 2013-03-15 16:59:35