Javaでミリ秒を「hh:mm:ss」形式に変換するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-01 19:09:30
オリジナル
247 人が閲覧しました

How to Convert Milliseconds to

ミリ秒を「hh:mm:ss」にフォーマットしています

問題:

カウントダウン タイマーを使用している開発者が次のような問題に遭遇しました。ミリ秒を目的の「hh:mm:ss」形式に変換するのが困難です。最初の試みでは、特に 1 時間を超える値の場合に、時刻が正しく表示されませんでした。

解決策:

主な問題は、次を使用して時間をミリ秒に変換する際の論理的欠陥に起因していました。時間ではなく分で。具体的には、使用されたコード:

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!