将毫秒持续时间格式化为小时、分钟和秒

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(376)   2023-06-26 07:54:18

学习将给定的持续时间(以毫秒为单位)转换为小时、分钟和秒;并将格式设置为 HH:mm:ss 或任何其他自定义模式。

1. 使用 Duration API

如果我们知道根据给定的毫秒计算小时分钟的算术公式,那么我们可以使用 Duration 类方法并自己应用这些计算。

Duration 类以秒和纳秒为单位模拟时间量。它为其他基于持续时间的时间单位提供方法,例如 toHours()toMinutes() 和 getSeconds()。我们可以使用这些方法来获取特定单位的时间并获取模数以提取确切的数量。

long millis = 54321000;

Duration duration = Duration.ofMillis(millis);

long h = duration.toHours();
long m = duration.toMinutes() % 60;
long s = duration.getSeconds() % 60;

String timeInHms = String.format("%02d:%02d:%02d", h, m, s);

System.out.println(timeInHms);	//15:05:21

2. Apache Common 的 DurationFormatUtils

DurationFormatUtils 类提供格式化实用程序和常量。它的formatDuration(durationMillis, format) 方法可用于将指定的持续时间格式化为指定的格式。

它采用可选的第三个参数 padWithZeros 指定是否用 0 填充数字的左侧。例如,如果我们想将“5”写成“05”,那么我们应该将第三个参数作为 true 传递。

long millis = 54321000;

String timeInHms = DurationFormatUtils
	.formatDuration(millis, "HH:mm:ss", true);

System.out.println(timeInHms);	//15:05:21

//Without padding

timeInHms = DurationFormatUtils
	.formatDuration(millis, "HH:mm:ss", false);

System.out.println(timeInHms);	//15:5:21

要使用此类,请包含来自 Maven 存储库的最新版本的 commons-lang。

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

3.总结

在这个简短的 Java 教程中,我们学习了如何将给定的持续时间(以毫秒为单位)转换为包含小时、分钟和秒的格式化字符串。此信息对于打印可能运行数小时的长时间运行作业的日志很有用。

快乐学习!!

地址:https://www.cundage.com/article/format-millis-to-hh-mm-ss.html

相关阅读

学习创建新日期、获取当前日期、解析日期为字符串或格式化Date 使用 java.util.Date类。这些用例是经常需要的,将它们放在一个地方将有助于为我们许多人节省时间。 值得注意的是,没有与...
学习将java.time.LocalDate转换为java.util.Date 反之亦然,使用易于理解的 Java 示例。 1.将日期转换为LocalDate Date.getTime() 方法...
学习将 java.util.Date 转换为 java.time.LocalDateTime,反之亦然理解 Java 程序。 1. 日期 -&gtl; LocalDateTime Date.ge...
学习使用 Java 中的 ZonedDateTime 方法将 ZonedDateTime.format(DateTimeFormatter) 实例转换为字符串。 1.内置格式化程序 DateTi...
学习将 XMLGregorianCalendar 实例格式化为多种模式的字符串,例如“MM/dd/yyyy hh:mm a z”在 Java 中使用 DateTimeFormatter 和 Si...
获取任何给定日期的第二天或前一天的 Java 示例。该示例使用旧版 java.util.Date 类以及来自 Java 8 的 java.time.LocalDate 类。 我们可以使用此示例代...
学习在 Java 中比较两个给定日期,以找出 在通用时间轴中哪个日期早,哪个日期晚。我们将看到使用以下类的日期比较示例: LocalDate、LocalDateTime 和 ZonedDateT...
了解 Java 中的 ZonedDateTime 类,如何创建其实例和其他用例,例如解析、格式化以及添加持续时间和时间段。 一、概述 java.time.ZonedDateTime 类,在 Ja...
从 LocalTime 转换为 java.sql.Time 的 Java 示例,反之亦然。 请注意,Time 类添加了格式化和解析操作以支持时间值的 JDBC 转义语法。它的日期组件应设置为“零...
学习用 Java 获取当前日期和/或时间。请注意,处理日期时间信息的适当方式在 JDK 8 前后有所不同。 对于 JDK 8 或更高版本,推荐的方法是使用 LocalDate 和 LocalTi...