0

なぜ

calendarCurrent = Calendar.getInstance(Locale.US);
calendarCurrent.get(Calendar.MONTH)

今12なら10を返しますか?

4

3 に答える 3

6

月のインデックスは1からではなく0から始まるため、10が返された場合は11である必要があります。米国ロケールではまだ11ではない可能性があります。

于 2012-12-01T12:11:31.927 に答える
2

月はゼロベース(残念な設計上の決定、IMHO)であるため、0は1月を意味し、10は11月を意味します。ここでは12月1日ですが、一部のタイムゾーンではまだ11月30日になる可能性があります。

于 2012-12-01T12:11:22.013 に答える
1

テストしたところ、11が返されます。これは、月が入っている12月です[0, 11]

javadocから:

月-MONTHカレンダーフィールドの設定に使用される値。月の値は0ベースです。たとえば、1月の場合は0。

すべて順調。あなたはおそらくそれを真夜中の少し前に、または米国以外のタイムゾーンでテストしましたね?

于 2012-12-01T12:11:29.663 に答える