天天看點

一文教你掌握日期操作 | 帶你學《Java語言進階特性》之二十二

上一篇:"Big"資料類助力大型資料運算 | 帶你學《Java語言進階特性》之二十一

學習過字元串、數值等資料的操作,常見的資料還有一類日期資料。本節将為讀者展示在Java中如何通過Date類進行日期資料的處理,使用SimpleDateFormat類完成對日期資料的格式化輸入與輸出。

【本節目标】

通過閱讀本節内容,你将對開發過程中經常涉及到的資料産生一個較為全面的掌握,并學會使用Date類、SimpleDateFormat類實作日期類型資料的各類操作。

Date日期處理類

從整體的Java來講,一直在強調簡單Java類的主要設計來自于資料表的結構,那麼在資料表的結構裡面常用的類型:數字、字元串、日期,是以現在的程式之中隻差日期了。

在Java中提供有java.util.Date類,這個類如果直接執行個體化就可以擷取目前的日期時間。

範例:觀察java.util.Date類

public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        Date date=new Date();
        System.out.println(date);
    }
}           

這個時候需要進一步去觀察Date類中的構造方法:

public Date() {
        this(System.currentTimeMillis());
    }
    public Date(long date) {
        fastTime = date;
    }           

通過以上源代碼分析可以得出一個結論:Date類中隻是對long資料的一種包裝。是以Date類中一定提供有所謂的日期與long資料類型之間轉換的方法:

  • 将long轉為Date:public Date(long date);
  • 将Date轉為long:public long getTime();

範例:觀察Date與long之間的轉換

public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        Date date = new Date();
        long current = date.getTime();
        current += 1 * 864000 * 1000;    //10天的毫秒數
        System.out.println(new Date(current));   //long轉為Date
    }
}           

long之中可以儲存毫秒的資料量級,這樣友善程式處理。

日期格式化

雖然Date可以擷取目前的日期時間,但是預設情況下Date類輸出的日期時間結構并不能夠被國人所習慣,那麼就需要對顯示的格式進行格式化的處理,為了可以格式化日期,在java.text包中提供有SimpleDateFormat程式類。該類是DateFormat的子類,在該類中提供有如下的方法:

  • 【DateFormat繼承】将日期格式化:public final String format​(Date date);
  • 【DateFormat繼承】将字元串轉為日期: public Date parse​(String source) throws ParseException;

構造方法:public SimpleDateFormat​(String pattern);

日期格式:年(yyyy)、月(MM)、日(dd)、時(HH)、分(mm)、秒(ss)、毫秒(SSS)

範例:格式化日期顯示

public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        Date date = new Date();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        String str=sdf.format(date);
        System.out.println(str);
    }
}           

除了可以将日期格式化為字元串之後,也可以實作字元串與日期之間的轉換處理。

範例:将日期轉為Date

public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        String birthday="1846-11-11 11:11:11.111";   //字元串的日期
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        Date date=sdf.parse(birthday);
        System.out.println(date);
    }
}           

如果在進行字元串定義的時候,所使用的日期時間數字超過了指定的合理範圍,則會自動進行進位處理。

範例:數字格式化

public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        double money=23890238923.23;
        String str= NumberFormat.getInstance().format(money);
        System.out.println(str);//23,890,238,923.23
    }
}           
一文教你掌握日期操作 | 帶你學《Java語言進階特性》之二十二

格式化處理

通過到現在的學習可以發現,String字元串可以向所有類型轉換,基本類型、日期類型。

想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。

本内容視訊來源于

阿裡雲大學 下一篇:初識正規表達式 | 帶你學《Java語言進階特性》之二十三 更多Java面向對象程式設計文章檢視此處