Java中计算两个时间相差多少天,时,分,秒

import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.Date; String strTime1 = "2020-12-04 12:20:20"; String strTime2 = "2020-12-03 14:20:20"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date1; Date date2; try { date1 = format.parse(strTime1); date2 = format.parse(strTime2); long lDate1 = date1.getTime(); long lDate2 = date2.getTime(); long diff = (lDate1 < lDate2) ? (lDate2 - lDate1) : (lDate1 - lDate2); long day = diff / (24 * 60 * 60 * 1000); long hour = diff / (60 * 60 * 1000) - day * 24; long min = diff / (60 * 1000) - day * 24 * 60 - hour * 60; long sec = diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60; System.out.println("date1 与 date2 相差 " + day + "天" + hour + "小时" + min + "分" + sec + "秒"); } catch (ParseException e) { e.printStackTrace(); }
运行结果如下:
注:上述代码用于传入的两个时间为String类型的,如果传入时间直接为Date类型的,可做适当调整。
参考博客:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战