java - 我如何格式化 java.time.Duration mm :ss

标签 java java-8 java-time

我有一个 java.time.Duration,我想以 mm:ss 的形式输出它。似乎无法使用 DateTimeFormatter,因为它只接受 LocalTime、ZonedTIme 等

所以我是这样做的,在 90 秒内工作正常,给出 1:30,但在 66 秒内给出 1:6,而我想要 1:06

Duration duration = Duration.ofSeconds(track.getLength().longValue());
System.out.println(duration.toMinutes() + ":" + duration.minusMinutes(duration.toMinutes()).getSeconds());

最佳答案

您可以创建一个表示从午夜 (00:00) 开始的持续时间的 LocalTime 并使用 DateTimeFormatter:

LocalTime t = LocalTime.MIDNIGHT.plus(duration);
String s = DateTimeFormatter.ofPattern("m:ss").format(t);

请注意,这仅适用于少于一小时的持续时间。

关于java - 我如何格式化 java.time.Duration mm :ss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28675095/

相关文章:

使用 Guava 将 Java Map<String, String> 映射到 List<String>

java - 如何使用 Hibernate 自动释放游标?

java - Java 中的 Printf 问题

java - CompletableFuture,main 永远不会退出

java - Java8 中的 Kerberos/SPNEGO 服务器端身份验证更改

java - 如何将 Java lambda 表达式用于正则表达式

Java8 时间库不能正确解释 BST 时区

java DateTimeFormatterBuilder 在测试时失败

java - Time4j:显示一年中的所有天

java - Duration.toHours 返回零