【Java常用類庫】_日期操作類(DateFormat、SimpleDateFormat)筆記
本章目標:
1.掌握日期格式化的操作
2.可以使用SimpleDateFormat進行日期格式虛化轉換操作
3.編寫取得日期的操作類
3.1、DateFormat 類(是個單例形式擷取資料類,具體需指定好返回格式,通過format()方法接收資料)
此類是一個日期的格式化類,專門格式化日期的操作,因為java.util.Date類本身就已經包含了完整的日期,所以只需要將此日期按照一些好的格式格式一下顯示就好了。
public abstract class DateFormat extends Format
但是從定義上可以發現,此類是一個抽象類別,按照以往的思路,直接使用其子類執行個體化即可,但是DateFormat類本身的內部提供了可以直接為其執行個體化的操作。
得到日期的DateFormat對象:public static final DateFormat getDateInstance();
得到日期時間的 DateFormat對象:public static final DateFormat getDateTimeInstance();
直接使用DateFormat類完成Date類的轉換功能:
public final String format(Date date)
import java.text.DateFormat;import java.util.Date;public class DateDemo03{ DateFormat df1 = null; DateFormat df2 = null; df1 = DateFormat.getDateInstance(); df2 = DateFormat.getDateTimeInstance(); System.out.println("DATE:"+df1.format(new Date())); System.out.println("DATETIME:"+df2.format(new Date()));}
通過此類可以直接將Date類的顯示進行合理的格式化操作。此時採用的是預設的格式化操作,也可以通過Locale 對象指定要顯示的地區。指定的地區是中國。
import java.text.DateFormat;import java.util.Date;import java.util.Locale;public class DateDemo04{ public static void main(String args[]){ DateFormat df1 = null; DateFormat df2 = null; df1 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN")); df2 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,new Locale("zh","CN")); System.out.println(df1.format(new Date())); System.out.println(df2.format(new Date())); } }
3.2、SimpleDateFormat 類
此類功能是完成日期的顯示格式化的,例如,在開發中,可能會將一種日期格式變為另外一種日期格式,如下所示:
原始日期:2008-10-19 10時 10分 10秒 345毫秒
但是以上的兩個日期中日期的數字是完全一樣的,唯一不同的是日期的顯示格式不同,所以要想實現這樣的轉換功能就必須依靠SimpleDateFormat類。
No 標記 描述
1 y 表示年,年份是四位元字,所以需要使用"yyyy"表示年
2 M 表示月,月份是兩位元字,所以需要使用"MM"表示月
3 d 表示日,日是兩位元字,所以需要使用"dd"表示日
4 H 表示時,兩位元字表示
5 m 表示分,兩位元字表示
6 s 表示秒
7 S 表示毫秒
在SimpleDateFormat類使用的時候,必須注意的是在構造對象時要傳入匹配的模板。
構造方法:public SimpleDateFormat(String pattern)
轉換:public Date parse(Sting source)throws ParseException ->此時取得的是全部的時間數
格式化:public final String format(Date date) ->將時間重新格式化成字串顯示
執行個體:
import java.text.*;import java.util.*;public class DateDemo05{ public static void main(String args[]){ String strDate = "2008-10-19 10:11:30.345"; //準備第一個模板,從字串中提取出日期數字 String pat1 = "yyyy-MM-dd HH:mm:ss.SSS"; String pat2 = "yyyy年MM月dd日 HH時mm分ss秒SSS毫秒"; SimpleDateFormat sdf1 = new SimpleDateFormat(pat1); SimpleDateFormat sdf2 = new SimpleDateFormat(pat2); Date d = null; try{ d = sdf1.parse(strDate); }catch(Exception e){ e.printStackTrace(); } System.out.println(sdf2.format(d)); //將日期變為新格式 }}