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

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

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

下面为常规实现方法:

执行结果如下:

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

执行结果如下:

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

执行结果如下:

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

执行后结果如下:

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

相关推荐
码事漫谈2 小时前
大模型输出的“隐性结构塌缩”问题及对策
前端·后端
小江的记录本2 小时前
【网络安全】《网络安全常见攻击与防御》(附:《六大攻击核心特性横向对比表》)
java·网络·人工智能·后端·python·安全·web安全
努力的小雨3 小时前
龙虾量化实战法(QClaw)
后端
橙露3 小时前
SpringBoot 整合 MinIO:分布式文件存储上传下载
spring boot·分布式·后端
2401_895521344 小时前
【Spring Security系列】Spring Security 过滤器详解与基于JDBC的认证实现
java·后端·spring
小码哥_常5 小时前
大文件上传不再卡顿:Spring Boot 分片上传、断点续传与进度条实现全解析
后端
_Evan_Yao5 小时前
RAG中的“Chunk”艺术:我试过10种切分策略后总结的结论
java·人工智能·后端·python·软件工程
今天你TLE了吗5 小时前
LLM到Agent&RAG——AI概念概述 第二章:提示词
人工智能·笔记·后端·学习
IT_陈寒6 小时前
Vue的响应式把我坑惨了,原来问题出在这
前端·人工智能·后端
shark22222227 小时前
能懂!基于Springboot的用户增删查改(三层设计模式)
spring boot·后端·设计模式