天天看點

日期Date—字元串轉成日期對象

日期Date—字元串轉成日期對象

一、分析

從字元串轉成日期對象,可分析出,傳入參數為String , 傳回值類型為Date日期對象。從DateFormat類API方法清單中就知道了方法:

    • Date

      parse(String source)

      從給定字元串的開始解析文本以生成日期。

二、示範代碼

1、日期格式為:2019年12月30日

在擷取DateFormat轉換器執行個體時需加入樣式:(DateFormat.LONG)

public static void MethodDemo_3() throws ParseException {
		// TODO Auto-generated method stub
		
		String str_date="2019年12月30日";
		
		DateFormat dateformat=DateFormat.getDateInstance(DateFormat.LONG);
		
		Date date=dateformat.parse(str_date);
		
		//Mon Dec 30 00:00:00 CST 2019
		System.out.println(date);
	}
           

2、日期格式為:2019-12-30

就得加入SimpleDateFormat(yyyy-MM-dd) 自定義日期時間轉換器。

public static void MethodDemo_3() throws ParseException {
		// TODO Auto-generated method stub
		
		String str_date="2019-12-30";
		
		DateFormat dateformat=DateFormat.getDateInstance(DateFormat.LONG);
		 dateformat=new SimpleDateFormat("yyyy-MM-dd");
		
		Date date=dateformat.parse(str_date);
		
		//Mon Dec 30 00:00:00 CST 2019
		System.out.println(date);
	}
           

三、練習

2019-5-6 到 2019-7-26之間 相差多少天?

思路:

将兩個日期進行相減。必須有兩個可以進行減法運算的數字,能減的是毫秒值。

如何擷取擷取毫秒值?通過Date對象。

如何擷取Date對象,可以通過将字元串轉成Date對象。

步驟:

1、将日期格式的字元串對象轉換成Date對象。

2、将Date對象轉換成毫秒值。

3、相減,得到毫秒值,轉成天數。

示範代碼:

public class DateTest {

	public static void main(String[] args) throws ParseException {
		// TODO Auto-generated method stub

	String str_date1="2019-7-26";
	String str_date2="2019-7-25";
	
	test(str_date1,str_date2);
		
	}

	public  static void test(String str_date1, String str_date2) throws ParseException {
		// TODO Auto-generated method stub
		//設定格式
		DateFormat dateFormat=DateFormat.getDateInstance();
		
		//解析字元串時間
		Date date1 = dateFormat.parse(str_date1);
		Date date2 = dateFormat.parse(str_date2);
		
		//将Date對象轉換成毫秒值。
		long time1 = date1.getTime();
		long time2 = date2.getTime();
		
		//相減,得到毫秒值,取絕對值
		 long time=Math.abs(time2-time1);
		 
		 int day=getDay(time);
		
		System.out.println("他們之間相差"+day+"天");
	}

	public  static int getDay(long time) {
		// TODO Auto-generated method stub
		return (int) (time/1000/60/60/24);
	}

}
           

運作結果:

日期Date—字元串轉成日期對象