SimpleDateFormat 類的總結
-
所在包
java.text
。 -
繼承結構:
java.lang.Object
--->java.text.Format
--->java.text.DateFormat
-
構造函數:
SimpleDateFormat(String pattern)
如:SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
第一:Date 轉 String
-
使用SimpleDateFormat 和 父類 DateFormat (抽象類)的 format()方法。如以下例子都用到了此方法
-
年 : y : (常規使用四個y 如:yyyy)
一個y時返回四位數年份,如2018。
兩個y時返回兩位數年份,如18。三個y時返回四位數年份,如2018。
四個y時返回四位數年份,如2018
四個以上y時返回四位數年份前面用0填充,如五個y時返回02018 ,六個y時返回002018等等
Date date = new Date() ;
String time1 = new SimpleDateFormat("y").format(date) ; \\一個y時返回四位數年份,如2018
String time2 = new SimpleDateFormat("yy").format(date) ; \\兩個y時返回兩位數年份,如18
String time3 = new SimpleDateFormat("yyy").format(date) ; \\三個y時返回四位數年份,如2018
String time4 = new SimpleDateFormat("yyyy").format(date) ; \\四個y時返回四位數年份,如2018
String time5 = new SimpleDateFormat("yyyyyy").format(date) ; \\四個以上y時返回四位數年份前面用0填充,如五位時02018 ,六位時002018等等
- 月 :M :(常規使用兩個M 如:MM)
一個M時返一位數,如 3 或 11 。
兩個M時返回兩位數 如 03 或 11 。
三個及以上M時返回中文格式 如 三月、十一月等 。
Date date = new Date() ;
String time1 = new SimpleDateFormat("M").format(date) ; \\一個M時返一位數,如 3 或 11
String time2 = new SimpleDateFormat("MM").format(date) ; \\兩個M時返回兩位數 如 03 或 11
String time3 = new SimpleDateFormat("MMM").format(date) ; \\三個及以上M時返回中文格式 如 三月
- 日 : d :(常規使用兩個d 如:dd) ---- 分 :m :(常歸使用兩個m 如:mm) ---- 秒 :s :(常歸使用兩個s 如:ss)
- 以下規則通用這三種類划
一個d時返一位數,如 3 或 11 。
兩個及以上d時返回對應位數 如三個d時返回 003 或 011 。
Date date = new Date() ;
String time1 = new SimpleDateFormat("d").format(date) ; \\一個d時返一位數,如 3 或 11
String time2 = new SimpleDateFormat("dd").format(date) ; \\兩個d時返回兩位數 如 03 或 11
String time3 = new SimpleDateFormat("ddd").format(date) ; \\三個d時返回三位數 如 003 或 011
第二:String轉Date
- 同樣使用SimpleDateFormat 的 父類 DateFormat (抽象類)的方法,parse()。如以下例子都用到了此方法
從給定字符串的開始解析文本,以生成一個日期。該方法不使用給定字符串的整個文本。
String str = "2018-03-11 12:13:111" ;
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(str) ;
返回值是 Sun Mar 11 00:00:00 CST 2018 注意:該方法不使用給定字符串的整個文本.比如:"2018-03-11sdfdsfewewrewrwe" 這樣兒的值傳進去結果還是一樣
但是,但是,如果字符串給字的格式達不到SimpleDateFormat中定義的模式的話,就會拋出異常,比如"2018-03"這樣兒的字符串,沒達到要求的"yyyy-MM-dd"格式,即拋出異常
另外,另外,如果字符串中的時間值超大了,會自動進位,如 "2018-23-11" ,結果為:Mon Nov 11 00:00:00 CST 2019