1. 程式人生 > >Date和Calendar的區別以及對他們簡單的使用

Date和Calendar的區別以及對他們簡單的使用

1、什麼是Date和Calendar

a、Date類表示的是特定的,瞬間的,它能精確毫秒。

b、Calendar它是一種抽象類,相比Date它在操作日曆的時候提供了一些方法來操作日曆欄位

2、Date和Calendar常見的使用方式

a、Date

        Date date = new Date();
        System.out.println("毫秒:"+date.getTime());//輸入毫秒

        //時間轉字串
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time = sdf.format(date);
        System.out.println("時間轉字串:"+time);

        //利用字串來轉時間格式(記得丟擲異常)
        String time02 = "2018-09-05";
        SimpleDateFormat  sdf2 = new SimpleDateFormat ("yyyy-MM-dd");
        Date date2 = sdf2.parse(time02);
        System.out.println("字串轉時間格式:"+date2);

b、Calendar

        // 使用預設時區和語言環境獲得一個日曆
        Calendar cal = Calendar.getInstance();
        // 賦值時年月日時分秒常用的6個值,注意月份下標從0開始,所以取月份要+1
        System.out.println("年:" + cal.get(Calendar.YEAR));
        System.out.println("月:" + (cal.get(Calendar.MONTH) + 1));
        System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH));
        System.out.println("時:" + cal.get(Calendar.HOUR_OF_DAY));
        System.out.println("分:" + cal.get(Calendar.MINUTE));
        System.out.println("秒:" + cal.get(Calendar.SECOND));

        //手動設定某個日期
        Calendar cal02 = Calendar.getInstance();
        //注意,設定時間的時候月份的下標是在0開始的
        //設定時間不一定要這6個引數3個引數也是可以的
        cal02.set(2018,9,1,12,0,0);//二零一八年十月一號十二點
        System.out.println(cal02.getTime());

注意:

在大多數情況下,date要實現的功能都可以通過calendar來實現的(少數情況除外),在這上面只是列出的常用方法,感興趣的程式猿可以通過這些方法來簡單的去使用Calendar和Date,在使用的過程當中一點要注意程式碼的中的註釋哦。

3、Date和Calendar有什麼區別

區別:比較喲明顯的區別是Date是日期,Calendar是日曆,Date是類,Calendar是抽象類。當然,你也可以覺得Calendar是Date的加強版

4、在開發過程當中,使用Date和Calendar哪種的效率更高

這個就要看專案的具體需求了,不過在當前的開發環境中,Calendar使用的情況是比Date更多,畢竟它提供的方法大大的方便了我們程式猿完成跟時間有關的功能,但是這並不意味這Date就會淘汰,畢竟他們兩個還是有區別的,筆者只是認為Calendar用起來更好。