{{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); と指定しなければいけません。 ...ドキュメントはちゃんと読もうといういい例ですね