java - 转换 hh :mm:ss to mmm:ss

标签 java date timeunit

我有一个 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));
}

我的客户想要展示这个没有“小时”标签的计时器。示例:

  1. 如果 100 小时 => 6000:00
  2. 如果 0 小时 50 分钟 => 50:00
  3. if 1 小时 12 分 30 秒 => 72:30
  4. 如果 10 小时 5 分钟 => 600:05
  5. 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/

相关文章:

java - 将 XPath 表达式与简单 XML 结合使用

javascript - 如何在 JavaScript 中将 Date 对象保存在不同的时区

java - float 值上的 TimeUnit

java - 将纳秒转换为毫秒时如何获得小数结果?

java - 使用 Android 按钮移动 Textview

java - 像 SoapUI 中那样用 Java 代码执行结果替换字符串中的 Groovy 代码片段

java - 如何限制 Android 上其他应用程序的使用

linux - 如何检索当前分钟并检查该分钟是否在文件中

xcode - 从 NSDate 获取该月第一天的星期名称

Java - 将分钟和秒更改为时间格式? (毫米:ss)