/ /カレンダーで日付を設定すると間違った日付が表示されるのはなぜですか-Java、カレンダー

カレンダーで日付を設定すると、私に間違った日付が与えられます - java、calendar

日付を2013-01-01 00:00:00に設定していますが、日付は2月1日金曜日00:00:00 GMT + 01:00 2013になります

どうして?

Calendar calendar = Calendar.getInstance();
calendar.set(2013, 1, 1, 0, 0, 0);
Date startDate = calendar.getTime();

回答:

回答№1は5

Javaの日付クラスでは、月の番号付けは0から始まります。 Calendar このよくある間違いを避けるためのクラス。

calendar.set(2013, Calendar.JANUARY, 1, 0, 0, 0);

回答№2のための7

1は2月を意味します。 0は1月です。月には0から始まるインデックスが付けられます。ニーモニックを使用することをお勧めします。 Calendar.JANUARY


回答№3の場合は0

関連する...

最初はこれは同じ問題ではないと思った私の年が間違っていたので、得ていました。 12月に「12」を設定しましたが、月はオフセットで0から始まるため、カレンダーは実際にその12をロールオーバーして翌年の1月を意味するため、年が間違っている場合は月も間違っているかどうかを確認し、私のように寝返りを打つことができます。

つまり、setDate(2015、12、6)は2016年1月6日の日付になります

したがって、カレンダー月定数を使用してください。