0

为什么

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

如果现在是 12,返回 10?

4

3 回答 3

6

月份索引从 0 开始,而不是从 1 开始,因此如果返回 10,则它必须是 11 可能在美国语言环境中它还不是 11

于 2012-12-01T12:11:31.927 回答
2

月份是从零开始的(一个不幸的设计决定,恕我直言),所以 0 表示 1 月,10 表示 11 月。现在是 12 月 1 日,但在某些时区可能仍然是 11 月 30 日。

于 2012-12-01T12:11:22.013 回答
1

我刚刚对其进行了测试,它返回 11,这是 12 月,因为月份是[0, 11].

javadoc

month - 用于设置 MONTH 日历字段的值。月份值从 0 开始。例如,0 表示一月。

一切都很好。您可能在午夜之前或在非美国时区测试过它,不是吗?

于 2012-12-01T12:11:29.663 回答