本文主要是介绍Java计算时间差,距结束还有几天几小时几分钟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1、写法
- 2、备份
- 3、LocalDate、LocalDateTime、Date、String互转
1、写法
//静态方法,传入年月日时分秒
LocalDateTime startTime = LocalDateTime.of(2023, 11, 22, 15, 09, 59);
LocalDateTime endTime = LocalDateTime.of(2023, 11, 30, 0, 0, 0);
//计算差值
Duration duration = Duration.between(startTime, endTime);
//差几天
long days = duration.toDays();
//差多少小时
long hours = duration.toHours();
//分钟
long minutes = duration.toMinutes();
//秒
long seconds = duration.toSeconds();
//毫秒
long millis = duration.toMillis();
//纳秒
long nanos = duration.toNanos();
注意:
- 上面的
toHours()
方法返回的是时间差全部换算为小时的数值,而不时去掉整天以后的整小时,想获得后者,应该调用toHoursPart()
方法 - 计算结果可能为负值
PS:上面用到的LocalDateTime的of方法源码:
2、备份
备份下需求里写的一部分代码,以后好直接copy。需求部分UI:
该字段的后端处理:
/*** 计算时间差* 传入LocalDate,即年月日* 返回距离当前还有几天几小时几分钟* 结果为负数时,返回已过期
*/
public static String calcTimeliness(LocalDate timeliness) {//年月日转年月日0时0分0秒LocalDateTime timeDeadLine = timeliness.atTime(0, 0, 0);//起始时间LocalDateTime now = LocalDateTime.now();Duration duration = Duration.between(now, timeDeadLine);long days = duration.toDays();int hours = duration.toHoursPart();long minutes = duration.toMinutesPart();if (days < 0 || hours < 0 || minutes < 0) {return StatusEnum.EXPIRED.getName(); //已过期}return days + "天" + hours + "小时" + minutes + "分";}
3、LocalDate、LocalDateTime、Date、String互转
用的时候查吧,整理也没用,记不住也不用记。
-
https://blog.csdn.net/weixin_45103793/article/details/117929986
-
https://www.cnblogs.com/CF1314/p/13884530.html
这篇关于Java计算时间差,距结束还有几天几小时几分钟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!