apache时间区间工具类DurationFormatUtils

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.10</version>
</dependency>

计算两个日期相差天数/月数/年数

Date dateStart = DateUtils.parseDate("2022-08-04", "yyyy-MM-dd");
Date dateEnd = DateUtils.parseDate("2023-08-05", "yyyy-MM-dd");
String dayPeriod = DurationFormatUtils.formatPeriod(dateStart.getTime(), dateEnd.getTime(), "d");
String monthPeriod = DurationFormatUtils.formatPeriod(dateStart.getTime(), dateEnd.getTime(), "M");
String yearPeriod = DurationFormatUtils.formatPeriod(dateStart.getTime(), dateEnd.getTime(), "y");
System.out.println(dayPeriod + " " + monthPeriod + " " + yearPeriod);
//输出:366 12 1

将时间区间格式化

long durationMillis = (10 * 24 * 3600 + 10 * 3600 + 10 * 60 + 10) * 1000;
String formatDate = DurationFormatUtils.formatDuration(durationMillis, "d'天'H'小时'm'分's'秒'");
System.out.println(formatDate);
//输出:10天10小时10分10秒

将时间间隔(毫秒数)格式化为[H:mm:ss.SSS 时:分:秒.毫秒]格式的字符串

String hms = DurationFormatUtils.formatDurationHMS(600000L);
//输出:00:10:00.000

 

posted @   残城碎梦  阅读(139)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
历史上的今天:
2021-11-29 请你谈谈关于IO同步、异步、阻塞、非阻塞的区别
2021-11-29 为什么需要消息队列?使用消息队列有什么好处?
2021-11-29 你能说说Java中Comparable和Comparator的区别吗
点击右上角即可分享
微信分享提示