Calendar用法隨筆

平時在處理時間問題的時候,通常會想到用java.util.Date類型,在使用倒時間的運算的時候,就不是很方便,找找到了java.util.Calendar類,中文意思是「日曆」,如下就是本身對這個類的總結了,有不足之處請指正。java

 

一.聲明Calendar類,Calendar是一個抽象類,不能直接New一個實例,能夠有兩種方法獲得它的實例:
方法一:Calendar cal = new GregorianCalendar(); //GregorianCalendar是Calendar的實現類,
方法二:Calendar cal = Calendar.getInstance();
spa

經過以上方法得到的實例,默認都是當前日期。驗證以下:code

System.out.println("打印結果:"+(new SimpleDateFormat("yyyy-MM-dd hh-mm-ss SSSS E").format(calendar.getTime())));

打印結果:2015-09-12 08:57:02 0565 星期六

上述是使用了格式轉換.orm

一樣,也能夠直接使用Calendar對象本身的get()方法來獲取具體的值:對象

System.out.println("打印結果:Calendar.DAY_OF_WEEK:"+calendar.get(Calendar.DAY_OF_WEEK));//表示星期幾。從星期日開始到星期六爲一個週期,數字表示依次爲:1,2,3……7。
calendar.add(Calendar.MONTH, 1);//MONTH的表示是從數字0開始,因此月份應該是該數字+1.
System.out.println("打印結果:"+ calendar.get(Calendar.YEAR)+"-"+ calendar.get(Calendar.MONTH)+"-"+ calendar.get(Calendar.DAY_OF_MONTH)+" "+ calendar.get(Calendar.HOUR_OF_DAY)+":"+ calendar.get(Calendar.MINUTE)+":"+ calendar.get(Calendar.SECOND) );
打印結果:Calendar.DAY_OF_WEEK:7
打印結果:2015-9-12 8:59:55

獲取方法--Calendar對象.get(類的屬性);blog

二:經常使用屬性: get

 1 AM_PM                           上午/下午標誌
 2 DATE                            完整日期標誌
 3 DAY_OF_MONTH                       本月第幾天
 4 DAY_OF_WEEK                        星期幾
 5 DAY_OF_WEEK_IN_MONTH                   還沒有理解)
 6 DAY_OF_YEAR                        本年度的第幾天
 7 HOUR                            小時(12小時制,分上下午)
 8 HOUR_OF_DAY                        小時(24小時制,不分上下午)
 9 MILLISECOND                        微秒
10 MINUTE                           分鐘
11 MONTH                            月份
12 SECOND                           13 WEEK_OF_MONTH                       本月第幾個星期
14 calendar.getActualMaximum(Calendar.DAY_OF_MONTH) 一個月中最大值

三:Calendar設定一個時間值form

  方法一:setTime(Date date)class

  方法二:set(int field, int value)date

  方法三://使用這個方法的時候須要注意,month是須要在正常月份-1
    set(int year, int month, int date)
    set(int year, int month, int date, int hourOfDay, int minute)
    set(int year, int month, int date, int hourOfDay, int minute, int second)

  方法四:setTimeInMillis(long millis)

四:Calendar對象的運算  

(1)add()方法
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.DAY_OF_MONTH, 3);
cal.add(Calendar.DATE, -4);
Date date=cal.getTime();
System.out.println(df.format(date));
cal.add(Calendar.DATE, 4);
date=cal.getTime();
System.out.println(df.format(date));
輸出:
    2006-08-30
    2006-09-03
(2)roll方法
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.DAY_OF_MONTH, 3);
cal.roll(Calendar.DATE, -4);
date=cal.getTime();
System.out.println(df.format(date));
cal.roll(Calendar.DATE, 4);
date=cal.getTime();
System.out.println(df.format(date));
輸出:
    2006-09-29
    2006-09-03
可見,roll()方法在本月內循環,通常使用add()方法;

 五.Calendar和Date的轉化
  

(1) Calendar轉化爲Date
    Calendar cal=Calendar.getInstance();
    Date date=cal.getTime();
(2) Date轉化爲Calendar  
    Date date=new Date();
    Calendar cal=Calendar.getInstance();
    cal.setTime(date);
相關文章
相關標籤/搜索