Heim > Java > javaLernprogramm > Hauptteil

Wie konvertiere ich Millisekunden in das Format „hh:mm:ss'?

Linda Hamilton
Freigeben: 2024-11-02 03:51:02
Original
1093 Leute haben es durchsucht

How to Convert Milliseconds to

Millisekunden in das Format „hh:mm:ss“ konvertieren

Es kann vorkommen, dass Sie Millisekunden in das bekannte Format „hh:mm:ss“ umwandeln müssen. Format „hh:mm:ss“, das normalerweise zur Darstellung der Zeit verwendet wird. Dies kann eine häufige Anforderung in Anwendungen wie Countdown-Timern sein.

Verstehen des Problems

Möglicherweise haben Sie versucht, die Konvertierung mit dem folgenden Code durchzuführen:

<code class="java">//hh:mm:ss
String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
    TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
    TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));</code>
Nach dem Login kopieren

Dieser Code funktioniert jedoch möglicherweise nicht wie erwartet. Bei einer Eingabe von 3600000 ms (entspricht 1 Stunde) erhalten Sie beispielsweise „01:59:00“ anstelle des korrekten „01:00:00“.

Identifizierung des Problems

Bei näherer Betrachtung liegt das Problem in dieser Zeile:

<code class="java">TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))</code>
Nach dem Login kopieren

Hier konvertieren Sie Stunden in Millisekunden, indem Sie Minuten statt Stunden verwenden.

Korrektur die Logik

Der richtige Code sollte stattdessen TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)) verwenden:

<code class="java">//hh:mm:ss
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)));</code>
Nach dem Login kopieren

Diese Änderung stellt sicher, dass die Zeitumrechnung erfolgt Wenn Sie es richtig machen, erhalten Sie das gewünschte Ergebnis von „01:00:00“ für 3600000 ms.

Vereinfachte Version

Sie können den Code weiter vereinfachen, indem Sie a verwenden Moduldivision statt Subtraktion:

<code class="java">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));</code>
Nach dem Login kopieren

Diese Version bleibt effizient und liefert gleichzeitig die gleichen genauen Ergebnisse.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich Millisekunden in das Format „hh:mm:ss'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage