Calendar類的概念和使用


1、基本概念

  java.util.Calender類主要用於描述特定的瞬間,取代Date類中的過時方法實現全球化。
該類是個抽象類,因此不能實例化對象,其具體子類針對不同國家的日歷系統,其中應用最廣泛的
  是GregorianCalendar(格里高利歷),對應世界上絕大多數國家/地區使用的標准日歷系統。

2、常用的方法

過時Date構造函數與替代方法Calender gerInstance()之間的對比

package com.lagou.task13;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CalenderTest{
    public static void main(String[] args) {
        //  1.使用過時的方法按照指定的年月日時分秒來構造對象
        Date d1 = new Date(2008-1900, 8-1, 8, 20, 8, 8);
        //  設置日期對象的格式並打印
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format = sdf.format(d1);
        //  該方法已過時,在年份中需要扣除1900,月份中需要減1
        System.out.println("獲取到的時間是:" + format);    //  3908-9-8 20-8-8

        System.out.println("-----------------------------------------------");
        //  2.取代的方式,按照指定的年月日時分秒來構造對象
        //  獲取Calender類型的引用
        Calendar instance = Calendar.getInstance();
        //  設置指定的年月日時分秒信息
        instance.set(2008,8-1,8,20,8,8);    //  使用calender類中set方法,年份不需要減去1900月份需要減去1
        //  轉換為Date類型的對象
        Date d2 = instance.getTime();
        String format1 = sdf.format(d2);
        System.out.println("獲取到的時間是:" + format1);
    }
}

 

 

多態的第三種使用場合 :利用參數的返回值類型形成多態

System.out.println("-----------------------------------------------");
        //  3.向指定的字段設置以及增加指定的數值
        instance.set(Calendar.YEAR,2018);
        //  轉換為Date類型並按照指定的格式打印
        Date d3 = instance.getTime();
        System.out.println("設置年份后的結果是:" + sdf.format(d3));

        //  增加兩個月
        instance.add(Calendar.MONTH,2);
        Date d4 = instance.getTime();
        System.out.println("增加月份后的結果是:" + sdf.format(d4));

        //  筆試考點:既然Calender是個抽象類不能創建對象,那么上面的方法為啥可以獲取Calender類型的引用呢?為什么getInstance()方法可以得到他的引用
        //  在源碼中Calender new的不是自己的對象,所以這些類與Calender是父子類的關系;雖然在源碼中return的是cal,但是實際上返回的是子類類型的對象形成多態
        //  多態的使用場合之三   ·
    }

3、多態的使用場合

通過方法的參數傳遞形成多態;
  public static void draw(Shape s){
    s.show();
  }
  draw(new Rect(1, 2, 3, 4));
在方法體中直接使用多態的語法格式
  Account acc = new FixedAccount();
通過方法的返回值類型形成多態
  Calender getInstance(){
    return new GregorianCalendar(zone, aLocale);
  }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM