如何将毫秒转换为“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中文网其他相关文章!