トップ 一覧 Farm 検索 ヘルプ RSS ログイン

Calendarクラスの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
{{category JAVA}}
{{category Java}}
{{category プログラミング}}

!!カレンダーの時刻が変

タイムゾーンを指定することでさまざまなカレンダーの変換ができて便利な
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);
と指定しなければいけません。

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