1. 程式人生 > 實用技巧 >日期和日曆類

日期和日曆類

日期類

 Date  date = new Date();
 Date date = new Date(long) ;

        // 建立日期類的物件
        Date date = new Date();
        //獲取當前時間 以 標準格式
        System.out.println(date);
        // 獲取當前時間的毫秒數
        System.out.println(date.getTime());
        //通過毫秒數構建當前時區的 時間
        Date date2 = new Date(100000);
        System.out.println(date2);
        // 獲取 紀元時間  相隔本地時間8時區
        System.out.println(date.toGMTString());
        System.out.println(date.toLocaleString());
        //測試時間的先後
        System.out.println(date.after(date2));// true
        System.out.println(date.before(date2));//false
        System.out.println(date.compareTo(date2));//比較時間大小
        // 時間轉成字串
        System.out.println(date.toString());

在Java中用於表示日期的類 java.util.Date() ,用於獲取日期和時間的物件, 不過這個類的一些方法以及過時(被日曆類取代)

​ 建立日期類

2、日曆類 Calendar

java.util.Calendar 是表示日曆類, 它是一個單例模式 ,通過 getInstance()獲取一個日曆物件, 並獲取日曆的任意時間,日期。

常用方法

​ getInstance() : 獲取日曆物件

​ get() :獲取指定的單位的日曆數值 (年,月,日 等等)

​ set():設定指定單位的日曆數值

​ add() :新增指定單位的日曆數值

​ getTimeInMills() :獲取日期的毫秒數

/ 獲取當前日曆物件
        Calendar cal =  Calendar.getInstance();
        // 日曆的屬性 (fields)
        System.out.println(Calendar.DATE);
        System.out.println(Calendar.YEAR);
        System.out.println(Calendar.MONTH);
        //獲取當前日曆的年份
        System.out.println(cal.get(Calendar.YEAR));
        // 獲取月份 (返回 0-11)
        System.out.println(cal.get(Calendar.MONTH));
        // 獲取日(1-31)
        System.out.println(cal.get(Calendar.DATE));
        // 獲取日期
        System.out.println("獲取當前日曆的日期:"+ cal.getTime());
        // 新增日曆 (指定的field 和 數量)
        // 將當前日曆新增2個月
        cal.add(Calendar.MONTH ,2);
        System.out.println("新的日期:"+cal.getTime());
        cal.add(Calendar.DATE,-3);
        System.out.println("新的日期:"+cal.getTime());

        // 判斷日期的前後 after  before
        // 題目 給定兩個日期, 計算相差多少天
        Calendar cal1 = Calendar.getInstance();

計算兩個日曆(日期)的相差天數/月數

重寫構建一個時間
        Calendar cal2 =  Calendar.getInstance();
        // 設定指定的時間
        cal2.set(2020,10,20);
        System.out.println("cal2---"+cal2.getTime());
        // 原始方式  通過毫秒數計算
        long  n =  cal1.getTimeInMillis()-cal2.getTimeInMillis();
        System.out.println("n---->"+n);
        long days =  n/(1000*60*60*24);
        System.out.println("days:"+days);

        // java8 的方式
        LocalDate date1 =   LocalDate.of(2020,2,22);
        LocalDate date2 =   LocalDate.of(2020,3,22);
        long days2 = date1.until(date2,ChronoUnit.DAYS);
        System.out.println("兩個時間相差的天數:"+ days2);