我在玩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

我很困惑!

最佳答案

MONTH字段从零开始(我认为是从POSIX API继承的)。因此,您将其设置为2012年的第13个月,它被解释为2013年的第一个月(编号为0)。

如果将lenient属性设置为false,则会引发Exception。

关于java - 日历类的困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8807438/

10-09 12:57