Comment convertir des millisecondes en "hh:mm:ss" Format : résolu
Conversion des millisecondes en "hh:mm:ss" Le formatage peut être délicat, mais l'API TimeUnit de Java offre un moyen pratique de le faire. Après être tombé sur une tentative incorrecte provenant d'un autre fil de discussion, explorons la bonne façon d'aborder cette conversion.
Au départ, l'approche incorrecte impliquait l'utilisation de la ligne :
TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
Cependant, ce calcul était erroné converti les heures en millisecondes en utilisant des minutes au lieu d'heures. La logique correcte est :
TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
Voici un extrait de code corrigé :
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)));
Cette modification garantit que les heures sont correctement converties en utilisant l'unité de temps appropriée.
De plus , le code peut être simplifié en utilisant 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));
Les deux approches exploitent l'API TimeUnit et fournissent un formatage précis "hh:mm:ss" pour les millisecondes.
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!