日期Date—字符串转成日期对象

本文详细介绍了如何使用Java的DateFormat类将字符串转换为日期对象,并提供了具体示例。同时,通过实例演示了如何计算两个日期之间的天数差,包括设置日期格式、解析字符串时间、转换为毫秒值及计算天数等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、分析

从字符串转成日期对象,可分析出,传入参数为String , 返回值类型为Date日期对象。从DateFormat类API方法列表中就知道了方法:

    • Dateparse(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);
	}

}

运行结果:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真香号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值