我有一个 Java 函数可以将秒数转换为特定格式 (hh:mm:ss):
public static String formatChronometer(long seconds) {
return String.format("%02d:%02d:%02d", TimeUnit.SECONDS.toHours(seconds),
TimeUnit.SECONDS.toMinutes(seconds) % TimeUnit.HOURS.toMinutes(1),
TimeUnit.SECONDS.toSeconds(seconds) % TimeUnit.MINUTES.toSeconds(1));
}
我的客户想要展示这个没有“小时”标签的计时器。示例:
- 如果
100 小时 => 6000:00
- 如果
0 小时 50 分钟 => 50:00
- if
1 小时 12 分 30 秒 => 72:30
- 如果
10 小时 5 分钟 => 600:05
- if
0 小时 0 分 0 秒 => 00:00
我应该如何改变我的方法?
最佳答案
对于灵活的分钟数,您必须使用 %d
而不是 %02d
来指定您想要的位数,您的解决方案应该如下所示:
return String.format("%d:%02d",
TimeUnit.SECONDS.toMinutes(seconds),
TimeUnit.SECONDS.toSeconds(seconds) % TimeUnit.MINUTES.toSeconds(1)
);
示例
long[] times = {360000, 3000, 4350, 36300, 0};
for (long time : times) {
String result = String.format("%d:%02d",
TimeUnit.SECONDS.toMinutes(time),
TimeUnit.SECONDS.toSeconds(time) % TimeUnit.MINUTES.toSeconds(1));
System.out.println(String.format("%d : %s", time, result));
}
输出
360000 : 6000:00
3000 : 50:00
4350 : 72:30
36300 : 605:00
0 : 0:00
关于java - 转换 hh :mm:ss to mmm:ss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48347169/