¨解读
Calendar从星期日开始到星期六为一个周期,数字表示依次为:1,2,3……7;MONTH的表示是从数字0开始,所以月份应该是该数字+1。所以我们在使用的时候一定要仔细的阅读API文档,避免类似的陷阱。
¨案例
Calendar cal = Calendar.getInstance();
cal.set(1999, 12, 31); // Year, Month, Day
System.out.print(cal.get(Calendar.YEAR) + " ");
我们所期待程序打印的结果是 1999,可是程序打印的结果却不是这样.它将打印出来 2000。在 cal.set(1999, 12, 31)中, 将日历设置成1999年第13个月的第31天,但是标准日历中只会有12个月,所以 直接转换为下一年.因此我们打印出来的就是2000了。
所以建议日期和星期使用Calendar的定义的常量以避免混淆。