我有一个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());
格式化为字符串