Non ho capito bene. Dopo essermi imbattuto in questo thread, ho cercato di capire come formattare un timer per il conto alla rovescia che avesse il formato hh:mm:ss
.
Ecco il mio tentativo -
//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)));
Quindi, quando provo un valore come 3600000ms
, ottengo 01:59:00
, il che è sbagliato dal momento che dovrebbe essere 01:00:00
. Ovviamente c'è qualcosa che non va nella mia logica, ma al momento non riesco a vedere di cosa si tratti!
Qualcuno può aiutare?
Modificare -
Aggiustato. Ecco il modo giusto per formattare millisecondi per hh:mm:ss
formattare:
//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))));
Il problema era questo TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
. TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
Invece avrebbe dovuto essere questo .
00:59:59
, dovrebbe essere01:00:00
.