转载:Calendar类roll和add的区别

 System.out.println("当前时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); 

Calendar first = Calendar.getInstance();
Calendar second = Calendar.getInstance();
System.out.println(first.equals(second));
/*
* roll方法只是对相应时间属性(month or year)的域内做变化
* 例如,对月份使用roll方法,它会在1-12的范围内变化,不会影响的年
* 2011-1-15 roll(Calendar.MONTH, -1) 后是2011-12-15
*/
first.roll(Calendar.MONTH, -1);
System.out.println("roll后时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(first.getTime()));
/*
* add方法会产生其他相关时间属性(month的变化会导致year的变化)的连动变化
* 2015-03-03 add(Calendar.MONTH, +10) 后是2016-01-03
*/
second.add(Calendar.MONTH, +10);
System.out.println("add后时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(second.getTime()));

原文地址:https://www.cnblogs.com/qinse/p/4311226.html