0

次のコードの出力が 12-12-1991 であることがわかりません。

説明してください、助けてくれてありがとう

Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+7"));
        SimpleDateFormat simpleDF = new SimpleDateFormat("dd-MM-yyyy");
        c.set(1991, 11, 12);
        Date d = c.getTime();              
        System.out.println(simpleDF.format(d));
4

4 に答える 4

1

javadocsから:

設定

public final void set(int year,
                  int month,
                  int date)

カレンダー フィールド YEAR、MONTH、および DAY_OF_MONTH の値を設定します。他のカレンダー フィールドの以前の値は保持されます。これが望ましくない場合は、最初に clear() を呼び出します。パラメータ: year - YEAR カレンダー フィールドの設定に使用される値。month - MONTH カレンダー フィールドの設定に使用される値。月の値は 0 ベースです。たとえば、1 月は 0 です。date - DAY_OF_MONTH カレンダー フィールドの設定に使用される値。

于 2013-07-04T10:25:55.873 に答える
1

月はゼロインデックスベースです。10の代わりにが必要です11

あるいは、整数を直接使用する代わりに、意味のあるものを書くことができます。

 c.set(1991,Calendar.NOVEMBER, 12);

を表すフィールドはどこCalendar.NOVEMBERにありますか。static intNOVEMBER

于 2013-07-04T10:23:09.490 に答える
1

1 月は月 0 であるため、11 を 12 月に設定すると、java.util.Date のドキュメントを確認してください。

于 2013-07-04T10:23:26.670 に答える
1

月の値は 0 ベースです。たとえば、1 月は 0 です。

あなたは変わらなければならない

c.set(1991, 11, 12);

c.set(1991, 10, 12);
于 2013-07-04T10:24:35.270 に答える