Calendarクラス
カレンダーの時刻が変
タイムゾーンを指定することでさまざまなカレンダーの変換ができて便利な
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);
と指定しなければいけません。
...ドキュメントはちゃんと読もうといういい例ですね