Java中计算两个日期的相差时间

日常开发中,经常会存在这么一个场景,给定两个时间,计算两者相差多少天、小时、分钟或秒。

过去大家一般通过 Date 的 getTime 方法获取日期所代表的毫秒数后,除以指定单位代表的毫秒数进行计算。

下面为常规实现方法:

执行结果如下:

当然,以上方式不能说有问题,只能说不够简洁,因此可对其进行优化,下面为优化后的代码,当然,只贴出 diff 方法的代码:

执行结果如下:

当然,如果日期类型为 Date,以上已经算是最优实现方式了。但偶尔会实用 Java8新加入的日期类型 LocalDateTime 来表示时间。此时又该如何计算两者相差时间呢?当然,可以写一个转换方法,将 LocalDateTime 转换为 Date 后调用diff 方法。下面为对应的实现

执行结果如下:

实际上,使用 Java8 提供的日期API 本就能完成该功能,将其转为 Date 后进行运算则有点多此一举,且用 Java8 的日期 API 实现也同样简洁,下面为对应实现:

执行后结果如下:

由此常见的计算两个日期相差时间的工具类便诞生,下面为最终的代码:

相关推荐
Achou.Wang25 分钟前
Concurrency patterns - Go 并发模式
开发语言·后端·golang
存在morning26 分钟前
【GO语言开发实践】三 GO 工程化快速上手
开发语言·后端·golang
摇滚侠1 小时前
SpringBoot 面试题 真正的 offer 偏方 Java 基础 Java 高级
java·spring boot·后端
掘金者阿豪1 小时前
跨平台迁移踩坑记:从路径大小写到国产操作系统的那些事
后端
十贝1 小时前
Tailscale 自建 DERP 中继服务器故障排查与修复记录
后端
用户6757049885022 小时前
Redis有1亿个Key,如何优雅地找出特定前缀的那10万条?
后端
用户6757049885022 小时前
程序员常犯的坑:别再用 VARCHAR 存 IP 了!用对方式,性能何止提升10倍!
后端
老马95272 小时前
opencode8-桌面应用实战 3
前端·人工智能·后端
用户298698530142 小时前
Java 中的 Word 变量管理:添加、统计、获取与删除
java·后端
神奇小汤圆2 小时前
互联网大厂精选面试八股文(附2026最新Java+AI高频题)
后端