首頁 > Java > java教程 > 主體

如何在 Java 中將毫秒轉換為「hh:mm:ss」格式?

Mary-Kate Olsen
發布: 2024-11-01 19:09:30
原創
246 人瀏覽過

How to Convert Milliseconds to

將毫秒格式設定為「hh:mm:ss」

問題:

使用倒數計時器的開發人員遇到的問題難以將毫秒轉換為所需的「hh:mm:ss」格式。他們最初的嘗試導致時間顯示不正確,特別是超過一小時的數值。

解決方案:

主要問題源於使用以下方法將小時轉換為毫秒時的邏輯缺陷分鐘而不是幾個小時。具體來說,程式碼使用了:

TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
登入後複製

而它應該是:

TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
登入後複製

程式碼示範:

這是修改後的程式碼片段將毫秒正確格式化為「hh:mm:ss」:

String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
    TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
    TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
登入後複製

測試案例:

long millis = 3600000;
String hms = ... // Replace with revised code from above

System.out.println(hms); // Expected output: 01:00:00
登入後複製

此外,可以使用模數除法來最佳化程式碼而不是減法:

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));
登入後複製

兩種變體都實現了正確的「hh:mm:ss」格式,並利用TimeUnit API 無縫處理轉換。

以上是如何在 Java 中將毫秒轉換為「hh:mm:ss」格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!