2011-10-05 20 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日午後8時45分00秒BST 2011日付d = Calendar.getTime()が間違った時刻を返しますか?

誰もこれが理由で私を助けることができますか?

+0

出力がどのようになると思いますか? – Raedwald

答えて

9

Calendar.HOURは、12時間制の時刻を設定するために使用されます。

つまり、を実行するとCalendarを20:45に設定します。 8:45 です。

Calendar.HOUR_OF_DAYを使用して、24時間制の値を設定します。

9

確かに、あなたはCalendar.HOURを設定しています。これは1〜12時間の半日を表します。あなたは一日のために0から23までの値ですHOUR_OF_DAYを使用する必要があります。

また
calendar.set(Calendar.HOUR_OF_DAY, 8); 

、非常に良く、日付/時刻のAPIであるJoda Timeを使用:)

ください、余談として参照を介して静的メンバーを参照しないでください... someOtherThread.sleep(...)を呼び出して現在のスレッドが眠っているときに痛みにつながります...

関連する問題