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 10:24:30,2019/02/18這樣的,此時我們就需要用到java.text.SimpleDateFormat來自定義格式。
2.使用format()方法将日期轉換為字元串
使用format()方法,我們可以将日期類型轉換為自己自定義的字元串格式,如2019-02-18,2019/02/18,2019-02-18 10:24:30等,自定義格式如下表所示:
格式釋義舉例
格式釋義舉例yyyy年2019MM月02dd日18HH小時(24小時制)13,下午一點mm分鐘53ss秒42SSS毫秒629
package com.zwwhnly.springbootdemo;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); // Mon Feb 18 13:53:50 CST 2019 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)); // 輸出2019-02-18 13:53:50.629 System.out.println(simpleDateFormat2.format(currentTime)); // 輸出2019-02-18 System.out.println(simpleDateFormat3.format(currentTime)); // 輸出2019/02/18 }}
3.使用parse()方法将字元串轉換為日期
在實際開發過程中,我們經常需要将字元串轉換為日期類型,以進行後續操作,此時可以使用parse()
方法,但需要注意:如果字元串與指定的格式不比對,會報java.text.ParseException異常。
![snipaste_20190218_141555](E:臨時�90218snipaste_20190218_141555.png)package com.zwwhnly.springbootdemo;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,正是因為如此,以上的代碼才必須包括在try,catch語句中,否則IDEA會提示錯誤,代碼也編譯不通過,如下圖所示:
以上就是給大家分享的如何用Java Simple Date Format處理日期與字元串的轉換,更多Java學習資料,關注“武漢千鋒”微信公衆号!