一、分析
从字符串转成日期对象,可分析出,传入参数为String , 返回值类型为Date日期对象。从DateFormat类API方法列表中就知道了方法:
二、演示代码
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);
}
}
运行结果: