2011-10-05 107 views
5
 Calendar calendar = Calendar.getInstance(); 
    calendar.set(calendar.HOUR, 8); 
    calendar.set(calendar.MINUTE, 45); 
    calendar.set(calendar.SECOND, 00); 

    Date d = calendar.getTime(); 

    System.out.println(d); 

輸出是: 星期三10月5 20:45:00 BST 2011Date d = Calendar.getTime()返回錯誤的時間?

誰能幫我這是爲什麼?

+0

您對輸出結果有何期望? – Raedwald

回答

9

Calendar.HOUR用於設置12小時制的小時。

換句話說,您Calendar設置爲20:45。現在是8:45 PM

使用Calendar.HOUR_OF_DAY設置24小時制時值。

9

好的 - 你正在設置Calendar.HOUR這代表了半天的1-12小時。您應該使用HOUR_OF_DAY這對於整天在0-23值:

calendar.set(Calendar.HOUR_OF_DAY, 8); 

另外,使用Joda Time這是一個好得多的日期/時間API :)

順便說一句,請不要通過參考引用靜態成員......當您撥打someOtherThread.sleep(...)並且您當前的線程正在睡眠時,它會導致疼痛...

相關問題