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

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

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

下面为常规实现方法:

执行结果如下:

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

执行结果如下:

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

执行结果如下:

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

执行后结果如下:

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

相关推荐
深入云栈4 小时前
Netty 4.2.x 源码深度解析 (二十三):ByteBuf 核心设计 —— 索引、类型与零拷贝
java·后端·架构
JackJiang4 小时前
IM踩坑:聊天消息ID怎么设计?一个UUID搞不定,我用双ID解决
后端·架构
开心猴爷4 小时前
iOS 上架 App 流程
后端·ios
code_Bo5 小时前
不只命令行:我把跨 Agent 会话同步做成了桌面应用
前端·javascript·后端
用户8356290780515 小时前
使用 Python 控制 Excel 工作表的分页位置
后端·python
用户8356290780515 小时前
Python 如何在 Word 中添加和管理文档变量
后端·python
量化分析码农7 小时前
股票历史数据的复权参数对照:多级别返回的字段与数值差异
java·javascript·后端
程序员cxuan7 小时前
讲真,智能路由这事儿,还得看基元律动
人工智能·后端·程序员
vaskilab8 小时前
Schema 全绿,Agent 却把参数编造了
后端
Java与AI落地8 小时前
Spring AI 上手:给现有 Java 服务加一个能用的 AI 接口
后端