0

基本的には、2012 年 10 月 23 日の印刷で期待した結果が得られることを望んでいます。ただし、非常に有線です。これが私のコードです:

SimpleDateFormat ft = new SimpleDateFormat("YYYY-MM-dd");

Calendar cal = Calendar.getInstance();
cal.set(2012, 10, 22);
cal.add(Calendar.DATE, 1);
Date startDate = new Date();

startDate = cal.getTime();

String date = ft.format(startDate).toString();
System.out.println(date);

2012-10-23 を印刷したいのですが、結果は 2012-11-23 です。

1 か月が自動的に追加される理由を教えてもらえますか? ありがとうございました。

4

1 に答える 1

9

Calendarクラスの月は 1 からではなく 0 から始まるため、月を 10 に設定すると、10 月ではなく 11 月に設定されます。

コードを次のように変更します

cal.set(2012, 9, 22);

またはさらに良い

cal.set(2012, Calendar.OCTOBER, 22);

より詳しい情報:

于 2013-08-24T19:13:07.660 に答える