apache时间区间工具类DurationFormatUtils

发布时间 2023-11-29 08:38:12作者: 残城碎梦
<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