なぜ
calendarCurrent = Calendar.getInstance(Locale.US);
calendarCurrent.get(Calendar.MONTH)
今12なら10を返しますか?
なぜ
calendarCurrent = Calendar.getInstance(Locale.US);
calendarCurrent.get(Calendar.MONTH)
今12なら10を返しますか?
月のインデックスは1からではなく0から始まるため、10が返された場合は11である必要があります。米国ロケールではまだ11ではない可能性があります。
月はゼロベース(残念な設計上の決定、IMHO)であるため、0は1月を意味し、10は11月を意味します。ここでは12月1日ですが、一部のタイムゾーンではまだ11月30日になる可能性があります。
テストしたところ、11が返されます。これは、月が入っている12月です[0, 11]
。
javadocから:
月-MONTHカレンダーフィールドの設定に使用される値。月の値は0ベースです。たとえば、1月の場合は0。
すべて順調。あなたはおそらくそれを真夜中の少し前に、または米国以外のタイムゾーンでテストしましたね?