首页  >  文章  >  Java  >  如何在 Java 中将毫秒转换为“hh:mm:ss”格式?

如何在 Java 中将毫秒转换为“hh:mm:ss”格式?

Barbara Streisand
Barbara Streisand原创
2024-11-02 11:55:30275浏览

How do I Convert Milliseconds to

如何将毫秒转换为“hh:mm:ss”格式:已解决

将毫秒转换为“hh:mm:ss”格式可能很棘手,但 Java 的 TimeUnit API 提供了一种便捷的方法来做到这一点。在偶然发现另一个线程的错误尝试后,让我们探索处理此转换的正确方法。

最初,错误的方法涉及使用以下行:

TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))

但是,此计算错误使用分钟而不是小时将小时转换为毫秒。正确的逻辑是:

TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))

这是更正的代码片段:

String.format("%02d:%02d:%02d", 
    TimeUnit.MILLISECONDS.toHours(millis),
    TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)), // Corrected line
    TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));   

此修改可确保使用正确的时间单位正确转换小时。

此外,可以使用模除法而不是减法来简化代码:

String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
    TimeUnit.MILLISECONDS.toMinutes(millis) % TimeUnit.HOURS.toMinutes(1),
    TimeUnit.MILLISECONDS.toSeconds(millis) % TimeUnit.MINUTES.toSeconds(1));

两种方法都利用 TimeUnit API 并提供精确的毫秒“hh:mm:ss”格式。

以上是如何在 Java 中将毫秒转换为“hh:mm:ss”格式?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn