Je suis confus. Après être tombé sur ce fil, j'ai essayé de comprendre comment formater un compte à rebours qui avait le format hh:mm:ss
.
Voici ma tentative -
//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)));
Donc, quand j'essaie une valeur comme 3600000ms
, j'obtiens 01:59:00
, ce qui est faux car il devrait l'être 01:00:00
. Il y a évidemment quelque chose qui cloche dans ma logique, mais pour le moment, je ne vois pas ce que c'est!
Quelqu'un peut-il aider?
Éditer -
Corrigé. Voici la bonne façon de formater les millisecondes pour hh:mm:ss
formater -
//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))));
Le problème était le suivant TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
. Cela aurait dû être ça à la TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
place.
00:59:59
, ça devrait l'être01:00:00
.