繁体   English   中英

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

[英]How do i format a java.time.Duration mm:ss

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

所以我这样做了,工作正常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);

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

试试这样

System.out.printf("%d:%02d%n", duration.toMinutes(), duration.minusMinutes(duration.toMinutes()).getSeconds());

要么

    String s = String.format("%d:%02d%n", duration.toMinutes(), duration.minusMinutes(duration.toMinutes()).getSeconds());

格式化为String

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM