2012-05-07 56 views
1

我想使用以下代碼段將日期設置爲DEC 31,2012,但是我得到Mar 03,2013,這裏有什麼問題。使用日曆設置日期中的問題

Calendar today = Calendar.getInstance(); 
today.set(Calendar.MONTH, 13); 
today.set(Calendar.DAY_OF_MONTH, 31); 
today.set(Calendar.YEAR, 2012); 

long calendarNeverEndDate = today.getTime().getTime(); 
System.out.println("calendarNeverEndDate:" 
        + sdf.formatLocal(calendarNeverEndDate)); 

回答

5

這是因爲個月的0索引(是的,這是不符合天:-()

編輯:正如羅曼所提到的,最好使用常量

Calendar.DECEMBER 
+1

啊,Java日期!通過一個無效的值,它會讓它通過,並以不可預知的方式運行。「有效」值通常是反直覺的... *嘆*。順便說一句,你應該提及使用'Calendar.DECEMBER '可能更安全。 – Romain