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
お礼
アドバイスありがとうございました。