在开发中会遇到时间的特殊处理 例如: 时间转换,未来时间(当前时间加上分时天),时间相差
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);
结果为:
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秒
在开发过程中都遇会到各种问题,我们就共同分享学习进步吧,
标签:特殊,Java,处理,System,60,时间,println,newDate,out From: https://www.cnblogs.com/cilye/p/16811124.html