Java中的日期表示類


一、概述

    Java中的日期類設計的比較失敗,剛開始使用Date來計算時間,后來大部分Date類的方法都過時了;想用Calendar類代替Date類,然而Calendar類也是不盡如人意。下面簡單介紹下Java中的日期轉換方法。

1、Date類

   Date類的構造方法有兩個,public Date()和public Date(long date).可以用來表示當前日期,或者將長整型數據表示成時間。第一個勉強可以用下,用來表示當前時間,第二個試問誰能記得住那么一大串的時間值呢?看下示例吧:

       //參數表示1970-01-01 00:00:00到指定時間的毫秒數
        Date date1 = new Date(14686531L);
        System.out.println(date1);
        Date date2= new Date();
        System.out.println(date2);

輸出的日期為:

Thu Jan 01 12:04:46 GMT+08:00 1970
Sat Apr 20 08:43:34 GMT+08:00 2019

其中第一個參數表示:1970-01-01 00:00:00到指定時間的毫秒數

第二個表示:當前時間。

   使用Date將字符串轉換為日期格式:Date的年月日是在1900-01的基礎上來累加。因此,要現將字符串中的年月日切分出來,然后再使用Date表示。

   示例如下:

        //2. 出生日期
        //2000-12-16->轉化為date對象
        //在1900-01的基礎上來累加
        String str = "2000-12-16";
        //現將年月日切分出來
        String[] arr = str.split("-");
        int year = Integer.parseInt(arr[0]) - 1900;
        int month = Integer.parseInt(arr[1]) - 1;
        int day = Integer.parseInt(arr[2]);
        //Date date = new Date(2000,12,16);
        //如果某個類、方法、屬性出現了刪除線,並且有提示需要進行警告壓制
        //壓制內容deprecation,表示這個類、方法、屬性已過時
        //已過時:指當前代碼依然可以用,但是不推薦使用,在后續迭代版本中可能會被拋棄
        @SuppressWarnings("deprecation")
        Date date = new Date(year, month, day);
        System.out.println(date);

二、使用DateFormat類的子類(SimpleDateFormat類)表示

    因為使用Date類與字符串時間相互轉化十分困難,因此,考慮Date類的其他子類。DateFormat是日期/時間格式化子類的抽象類,它與以語言無關的方式格式化並解析日期或時間,是抽象類,所以使用其子類SimpleDateFormat實現日期和字符串的相互轉換。

public static void main(String[] args) throws Exception {

        // 2000-12-16
        // 2000/12/16
        // 2000.12.16
        // 12/16/2000
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 將字符串轉化為日期
        Date date = sdf.parse("2000-12-16 16:52:39");
        System.out.println(date);

        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        String str = sdf.format(date);
        System.out.println(str);
    }

三、Calendar類

    java開發Calendar的目的是為了替換Date類,但是,該類設計的也是相當失敗。僅有幾個方法還值得使用一下。Calendar類是一個抽象類,不過提供了一個getInstance方法可以生成一個實例對象。通過該對象可以設置當前時間和獲取日期。

public static void main(String[] args) {

        // 創建Calendar對象
        Calendar c = Calendar.getInstance();
        System.out.println(c);

        // 獲取Hour屬性的值
        int hour = c.get(Calendar.HOUR);
        System.out.println(hour);

        c.set(Calendar.HOUR, 12);

        // 獲取Date對象的方法
        Date d = c.getTime();
        System.out.println(d);
    }

 


免責聲明!

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



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