为什么calendar.get(Calendar.MONTH)返回10而不是12?

时间:2012-12-01 12:09:00

标签: java

为什么

calendarCurrent = Calendar.getInstance(Locale.US);
calendarCurrent.get(Calendar.MONTH)
如果现在是12,

会返回10吗?

3 个答案:

答案 0 :(得分:6)

月份索引从0开始而不是从1开始,如果已经返回10则必须为11可能在美国区域设置中它还不是11

答案 1 :(得分:1)

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

答案 2 :(得分:1)

我刚刚测试了它,它返回11,这是12月,因为[0, 11]中有几个月。

来自javadoc

  

month - 用于设置MONTH日历字段的值。月值是   0为主。例如,1月份为0。

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