日历类混乱

时间:2012-01-10 17:12:27

标签: java calendar

我正在玩Calendar课程并得到一些令人困惑的结果:

    Calendar thisCal = Calendar.getInstance();
    thisCal.clear();

    thisCal.set(2012,12,8);

    System.out.println("Year is: " + thisCal.get(Calendar.YEAR));
    System.out.println("Month is: " + thisCal.get(Calendar.MONTH));
    System.out.println("Day of Month is: " + thisCal.get(Calendar.DAY_OF_MONTH));

输出:

年份是:2013

月份是:0

每月的日子是:8

我很困惑!

3 个答案:

答案 0 :(得分:6)

MONTH字段基于零(我认为继承自某些POSIX API)。因此,您将其设置为2012年的第13个月,它将其解释为2013年的第一个月(数字为0)。

如果将lenient属性设置为false,则会抛出异常。

答案 1 :(得分:2)

月份编号从0开始。更多详情here.

答案 2 :(得分:1)

请阅读日历的API文档。

月份从ZERO开始。

因此,如果你将12设为月份,实际上是“第13个月”,这会导致“奇怪”的结果

相关问题