java Calendar bug

Calendar cal = Calendar.getInstance();  
cal.set(1999, 12, 29); // Year, Month, Day  
System.out.print(cal.get(Calendar.YEAR) + " ");  
Date d = cal.getTime();  
System.out.println(d.getDay());  

 程序将输出

2000 1

这个就是传说中的千年虫问题?

正确的方法

Calendar cal = Calendar.getInstance(); 
cal.set(1999, Calendar.DECEMBER, 31);  
System.out.print(cal.get(Calendar.YEAR) + " "); 
System.out.println(cal.get(Calendar.DAY_OF_MONTH));

 输出 1999  31

你可能感兴趣的:(calendar)