我在玩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
我很困惑!
发布于 2012-01-11 01:15:41
MONTH字段是从零开始的(我想是从一些POSIX API继承的)。因此您将其设置为2012年的13个月,它将其解释为2013年的第一个月(数字为0)。
如果将lenient属性设置为false,则会引发异常。
发布于 2012-01-11 01:15:35
月份编号从0开始。更多详细信息here.
发布于 2012-01-11 01:16:06
请阅读Calendar的API文档。
月份从零开始。
因此,如果您将12设置为月份,它实际上是“13个月”,这会导致“奇怪”的结果
https://stackoverflow.com/questions/8807438
复制相似问题