![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSP9cnW1Z0VhRDbHFme1cVWvB3MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL4MTNyUTMyUTMwMjMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
一、分析
從字元串轉成日期對象,可分析出,傳入參數為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);
}
}
運作結果: