日付を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は5Javaの日付クラスでは、月の番号付けは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日の日付になります
したがって、カレンダー月定数を使用してください。