• ベストアンサー

Calenderクラスを使うと変?

サーブレットで現在の日付と時刻を取得しようとして、まず、日付と時刻を表示させるプログラムを書きました。 APIドキュメントで探すとDateクラスのgetDate等が推奨されていないということだったので、Calendarクラスを使いました。 すると、月の表示がおかしいのです。年と日と時間はあっているのですが、月が10月になっているのです。(ちなみに今日なので、11月になるハズ・・・) パソコンの日付と時刻も今日(11月7日、タイムゾーン(GMT+09:00)大阪、札幌、東京)です。 そこで、DATEクラスを使うとちゃんと11月になっています。 どういうことなのでしょうか? import java.util.*; class Hiduke {    public static void main(String args[]) {      System.out.println(Calendar.getInstance());      Calendar calendar = Calendar.getInstance();      System.out.println(calendar.get(Calendar.YEAR));      System.out.println(calendar.get(Calendar.MONTH));      System.out.println(calendar.get(Calendar.DAY_OF_MONTH));      Date d = new Date();      System.out.println(d);    } } java.util.GregorianCalendartime=1036634060997,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Tokyo",offset=32400000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null], firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2002,MONTH=10,WEEK_OF_YEAR=45,WEEK_OF_MONTH=2, DAY_OF_MONTH=7,DAY_OF_YEAR=311,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=1, AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=54,SECOND=20,MILLISECOND=997,ZONE_OFFSET=32400000,DST_OFFSET=0] 2002 10 7 Thu Nov 07 10:54:21 JST 2002

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

別に変ではないです。 フィールド MONTH は、1月が0になります。参考URL の API Document を参照ください。

参考URL:
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/Calendar.html#MONTH
tam2-y
質問者

お礼

ありがとうございます。 すみません、もっとしっかり見ないとダメですね。

その他の回答 (1)

noname#30871
noname#30871
回答No.1

 そういう仕様です。

参考URL:
http://www.borland.co.jp/qanda/jbuilder/jfaq0050.html,http://www.gimlay.org/~javafaq/S100.html

関連するQ&A