Java SimpleDateFormat處理日期與字符串的轉換


1. 為什么要使用SimpleDateFormat?

在Java中,如果我們想獲取當前時間,一般會使用Date類的無參構造函數,如下所示,我們獲取到當前時間並輸出:

import java.util.Date;

public class SimpleDateFormatDemo {
    public static void main(String[] args) {
        Date currentTime = new Date();
        System.out.println(currentTime);
    }
}

輸出結果:

Mon Feb 18 10:24:30 CST 2019

此時我們會發現, 輸出的格式並不是我們預期的格式,一般情況下,我們希望的格式都是類似於2019-02-18,2019/02/18,2019-02-18 10:24:30這樣的,此時我們就需要用到java.text.SimpleDateFormat來自定義格式。

2. 使用format()方法將Date轉換為String

使用format()方法,我們可以將日期類型轉換為自己自定義的字符串格式,如2019-02-18,2019/02/18,2019-02-18 10:24:30等,自定義格式如下表所示:

格式 釋義 舉例
yyyy 2019
MM 02
dd 18
HH 小時(24小時制) 13,下午一點
mm 分鍾 53
ss 42
SSS 毫秒 629
package com.zwwhnly.springbootaction.date;

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

public class SimpleDateFormatDemo {
    public static void main(String[] args) {
        Date currentTime = new Date();
        System.out.println(currentTime);

        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy/MM/dd");

        System.out.println(simpleDateFormat1.format(currentTime));
        System.out.println(simpleDateFormat2.format(currentTime));
        System.out.println(simpleDateFormat3.format(currentTime));
    }
}

輸出結果:

Mon Feb 18 13:53:50 CST 2019

2019-02-18 13:53:50.629

2019-02-18

2019/02/18

3. 使用parse()方法將String轉換為Date

在實際開發過程中,我們有時需要將String轉換為Date類型,以進行后續操作,此時可以使用parse()方法。

但需要注意:如果字符串與指定的格式不匹配,會報java.text.ParseException異常

package com.zwwhnly.springbootaction.date;

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

public class SimpleDateFormatDemo {
    public static void main(String[] args) {

        try {
            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");

            String strDate1 = "2019-02-18 13:58";
            String strDate2 = "2019-02-18";

            Date date1 = simpleDateFormat1.parse(strDate1);
            System.out.println(date1);
            Date date2 = simpleDateFormat1.parse(strDate2);
            System.out.println(date2);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

運行結果如下圖所示:

由此我們可以看到,strDate1格式匹配能正常轉換為Date類型,而strDate2由於格式不匹配,

拋出java.text.ParseException

4. 參考

Java學習--使用 Date 和 SimpleDateFormat 類表示時間

Java SimpleDateFormat進行日期格式化


免責聲明!

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



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