在开发中会遇到时间的特殊处理 例如: 时间转换,未来时间(当前时间加上分时天),时间相差

1.时间转换

有时候时间格式不对,不是我们需要的,那就需要转换,转换成这样的 2022-10-21 19:06:51 者转换成时间戳 2022-10-21 19:06:51
所以这我们就需要去做相应的转换了 直接看代码

	// 转换为有格式的时间 参数是: 需要的格式
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	System.out.println("时间是: " + sdf.format(new Date()));
	// 转为时间戳
	Date date = new Date();
	long time = date.getTime();
	System.out.println("时间是: " + time);

结果为:
image

2.未来时间

在处理特殊业务的时候,需要用到明天的时间,这个时候我们就需要来处理

	// 需要渠道当前时间
	Date date = new Date();
	// 然后把当前时间转为时间戳,才能计算
	long time = date.getTime();

	Date newDate = new Date();
	System.out.println(sdf.format(newDate));

	// 加一秒
	newDate.setTime(time + 1000);

	System.out.println(time);
	System.out.println(sdf.format(newDate));

	// 加一分
	newDate.setTime(time + 1000 * 60);
	System.out.println(sdf.format(newDate));

	// 加一时
	newDate.setTime(time + 1000 * 60 * 60);
	System.out.println(sdf.format(newDate));

	// 加一天
	newDate.setTime(time + 1000 * 60 * 60 * 24);
	System.out.println(sdf.format(newDate));

结果是:

	当前时间: 2022-10-20 19:53:00
	加一秒的时间: 2022-10-20 19:53:01
	加一分的时间: 2022-10-20 19:54:00
	加一时的时间: 2022-10-20 20:53:00
	加一天的时间: 2022-10-21 19:53:00

也都是没有问题的

3. 时间相差

如果是需要计算两个时间相差多少呢,我们也是可以计算的

	// 计算两个是时间差
	// 当前时间/结束时间
	Date date = new Date();
	long endTime = date.getTime();

	// 一天后时间/起始时间
	long time = date.getTime();
	date.setTime(time + 1000 * 60 * 60 * 24);
	long startTime = date.getTime();

	// 天数差 计算都是开始时间减去结束时间
	int day = (int) ((startTime - endTime) / (1000 * 60 * 60 * 24));
	System.out.println("相差:" + day + "天");
	// 小时差
	int hour = (int) ((startTime - endTime ) / (1000 * 60 * 60 ));
	System.out.println("相差:" + hour + "小时");
	// 分钟差
	int minute = (int) ((startTime - endTime) / (1000 * 60 ));
	System.out.println("相差:" + minute + "分钟");
	// 秒差
	int seconds = (int) ((startTime - endTime) / 1000);
	System.out.println("相差:" + seconds + "秒");

结果是:

	相差:1天
	相差:24小时
	相差:1440分钟
	相差:86400秒

在开发过程中都遇会到各种问题,我们就共同分享学习进步吧,

posted on 2022-10-20 20:13  Cetl  阅读(59)  评论(0编辑  收藏  举报