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月。