有時日期對象給我一週的錯誤日子。我的代碼非常簡單。在Java中,爲什麼Date()對象的printf有時會出錯?
//Setting to 2017, April, 12th
Date dt = new Date(2017, 3, 11);
System.out.printf("%TA", dt);
這給了我'星期三',這是正確的。事實上,它似乎在最近和未來的任何一年都可以正常工作。
但是,如果我將時間設置爲2999,8月,5日。這是
//Setting to 2999, August, 5th
Date dt = new Date(2999, 7, 4);
System.out.printf("%TA", dt);
它實際上是8月5日2999是星期一時返回'星期二'。
這是怎麼發生的?我該如何解決它?
乾杯!
不建議使用年份,月份和日期的構造函數,並且不應使用它。 – 1615903
您不打印2017年或2999年的日期。您打印的日期爲3917和4899.還有一個避免使用java.util.Date的原因。你也試圖打印出8月4日而不是8月5日。 (而不是7月11日,而不是7月12日。)我建議你刪除這個問題,因爲它基本上結束爲「我沒有閱讀我調用的構造函數的文檔。」 –
請注意,通過首先調用'System.out.println(dt);'來檢查日期是否正確,就可以看到這兩個錯誤。在指責平臺之前,始終認爲*你的*代碼可能是錯誤的 - 如果你要聲明平臺是錯誤的,那麼你應該盡一切可能首先檢查平臺。 –