Calendar中add()和roll()函数的用法函数
1、取某个时间点后的整点时刻。例如1984年7月7日15:23:05后的整点时刻即为1984-07-07 16:00:00。get
实现以下:im
Calendar calendar = Calendar.getInstance();时间
calendar.add(Calendar.HOUR_OF_DAY, 1);//小时上加1calendar
calendar.set(Calendar.MINUTE, 0);//分钟设为0日期
calendar.set(Calendar.SECOND, 0);//秒钟设为0日历
2、取某个日历以前的某个月。例如要取2002年1月12号以前1个月的时间,应该是2001年12月12日。
Calendar calendar = Calendar.getInstance();
calendar.set(2002, 0, 12);//表明2002年1月12日
calendar.add(Calendar.MONTH, -1);//这样就将日期设置成了2001年12月12日。
System.out.println(calendar.getTime().toString());
可是这种状况若是用roll()来实现。如如下代码:
Calendar calendar = Calendar.getInstance();
calendar.set(2002, 0, 12);//表明2002年1月12日
calendar.roll(Calendar.MONTH, -1);//这样就将日期设置成了2002年12月12日。
System.out.println(calendar.getTime().toString());
结论:roll()函数处理,只会比相应的字段进行处理,不会智能的对其它字段也进行逻辑上的改变。可是add()函数会在逻辑上改变其它字段,使结果正确。
注:Calendar中的Month是从0-11的,0表明1月,11表明12月。