トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Calendarクラス

[Java]
[プログラミング]

 カレンダーの時刻が変


タイムゾーンを指定することでさまざまなカレンダーの変換ができて便利な
JavaのCalendarクラスですが、値の取得は、
Dateクラスのように各フィールド値に対応したメソッドがあるわけでなく
共通のメソッドgetにフィールド定数を指定することで行います。
たとえば、年がほしかったら

cal.get(Calendar.YEAR);

といった具合です。
同様に時間を取得する場合に

cal.get(Calendar.HOUR);

としていたのですが...実はこれがバグの元。
CalendarクラスのHourフィールドは12時間制で値を返してきます。
すなわち22時も10時も同じ10という値が返ってきます。
24時間制で取得するためには

cal.get(Calendar.HOUR_OF_DAY);

と指定しなければいけません。

...ドキュメントはちゃんと読もうといういい例ですね