1、set方法 Calendar類的MONTH是從0開始; public class CalendarDemo { public static void main(String[] args) { Calendar cal = Calendar.getInstance(); cal.set(2009, 0, 31); cal.set(Calendar.MONTH, 3); Date testDate = cal.getTime(); System.out.println(testDate); } 結(jié)果輸出為:Fri May 01 16:14:14 CST 2009; 從結(jié)果可以看出set方法會(huì)根據(jù)自然月的最大天數(shù)和傳入的DAY調(diào)整日期,如上代碼,四月份最大天數(shù)是4-30,所以set方法會(huì)將月份增加即五月份即5-01。 2、add方法 public class CalendarDemo { public static void main(String[] args) { Calendar cal = Calendar.getInstance(); cal.set(2009, 0, 31); Date testDate = cal.getTime(); Calendar cal1 = Calendar.getInstance(); cal1.setTime(testDate); cal1.add(Calendar.MONTH,3); Date testDate1 = cal1.getTime(); System.out.println(testDate1); } } 輸出結(jié)果為:Thu Apr 30 16:23:14 CST 2009; 從結(jié)果可以看出add方法會(huì)根據(jù)自然月的最大天數(shù)調(diào)整日期,如上代碼,add方法不會(huì)根據(jù)傳入的DAY值調(diào)整月份,而是會(huì)根據(jù)月份調(diào)整傳入的DAY; 3、roll方法 public class CalendarDemo { public static void main(String[] args) { Calendar cal = Calendar.getInstance(); cal.set(2009, 0, 31); Date testDate = cal.getTime(); Calendar cal1 = Calendar.getInstance(); cal1.setTime(testDate); cal1.roll(Calendar.MONTH, 13); Date testDate1 = cal1.getTime(); System.out.println(testDate1); } } 結(jié)果輸出為:Sat Feb 28 16:38:18 CST 2009; 注意看年份,在加了13個(gè)月之后仍然是2009年,所以roll方法不會(huì)改變當(dāng)前日期的最大年份, 而是會(huì)根據(jù)月份的總數(shù)減去12作為當(dāng)前日歷的月份,在調(diào)整月份日期方面和add方法相同。 下面是API(中文文檔)對(duì)以上三個(gè)方法的介紹: 可以使用三種方法更改日歷字段: set()、 add() 和 roll()。 set(f, value) 將日歷字段 f 更改為 value。此外,它設(shè)置了一個(gè)內(nèi)部成員變量,以指示日歷字段
此,多次調(diào)用 歷字段也可能發(fā)生更改,這取決于日歷字段、日歷字段值和日歷系統(tǒng)。此外,在重新計(jì)算日歷 字段之后, 定的。 示例:假定
是解析 1999 年 10 月 1 日的一個(gè)暫時(shí)內(nèi)部表示。但是,在調(diào)用
生重新計(jì)算。
以下兩個(gè)調(diào)整:
此外,與 示例:假定
August 添加 13 個(gè)月得出的就是下一年的 September。因?yàn)樵?
管它是一個(gè)更小的字段,但不能根據(jù)規(guī)則 2 調(diào)整 的月份發(fā)生變化時(shí),該值也需要發(fā)生變化。
示例:請(qǐng)參閱 使用模型。為了幫助理解 日、年和底層 月 31 日,并且用戶按下月份的遞增按鈕,那么應(yīng)該得到什么?如果底層實(shí)現(xiàn)使用 可以將該日期讀為 1999 年 3 月 3 日。更好的結(jié)果是 1999 年 2 月 28 日。此外,如果用戶再次 按下月份的遞增按鈕,那么該日期應(yīng)該讀為 1999 年 3 月 31 日,而不是 1999 年 3 月 28 日。 通過(guò)保存原始日期并使用 數(shù)用戶所期望的那樣運(yùn)行。 |
|