Maison > Java > javaDidacticiel > le corps du texte

Comment convertir des millisecondes au format \'hh:mm:ss\' en Java ?

Mary-Kate Olsen
Libérer: 2024-11-01 19:09:30
original
246 Les gens l'ont consulté

How to Convert Milliseconds to

Formatage des millisecondes en "hh:mm:ss"

Problème :

Un développeur travaillant avec un compte à rebours rencontre difficulté à convertir les millisecondes au format "hh:mm:ss" souhaité. Leur première tentative a abouti à un affichage incorrect de l'heure, en particulier pour les valeurs dépassant une heure.

Solution :

Le problème principal provenait d'un défaut logique dans la conversion des heures en millisecondes à l'aide de minutes au lieu d'heures. Plus précisément, le code utilisé :

TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
Copier après la connexion

alors qu'il aurait dû l'être :

TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
Copier après la connexion

Démonstration de code :

Voici un extrait de code révisé qui formate correctement les millisecondes en "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)));
Copier après la connexion

Cas de test :

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

System.out.println(hms); // Expected output: 01:00:00
Copier après la connexion

De plus, le code peut être optimisé à l'aide de la division de module au lieu de la soustraction :

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));
Copier après la connexion

Les deux variantes obtiennent le formatage "hh:mm:ss" correct et exploitent l'API TimeUnit pour gérer les conversions de manière transparente.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!