Calendar中add函數和roll函數的用法及區別

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

相關文章
相關標籤/搜索