因为cal.set(1999, 12, 31); 中的12表示的不是12月。月份字段是基于0的,JDK文档:month - 用来设置 MONTH 日历字段的值。Month 值是基于 0 的。例如,0 表示 January。12就代表来年一月,点出来就是来年0月- import java.util.*;
- public class Outer{
- public static void main(String[ ] args) {
- Calendar cal = Calendar.getInstance();
- cal.clear();
- cal.set(1999, 12, 31); // Year, Month, Day
- System.out.print(cal.get(Calendar.YEAR) + "/" + cal.get(Calendar.MONTH) + "/" + cal.get(Calendar.DAY_OF_MONTH));
- }
- }
- //out:2000/0/31
复制代码 |