Wie konvertiert Millisekunden um "hh:mm:ss" - format?

Ich bin verwirrt. Nach stolpern auf diese thread habe ich versucht, herauszufinden, wie zu formatieren, countdown-timer, der das format hh:mm:ss.

Hier ist mein Versuch -

//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)));   

So, wenn ich versuche einen Wert wie 3600000ms bekomme ich 01:59:00das ist falsch, denn es sollte 01:00:00. Offensichtlich gibt es etwas falsch mit meiner Logik, aber im moment, ich kann nicht sehen, was es ist!

Kann jemand helfen?

Bearbeiten -

Behoben. Hier ist der richtige Weg, um format Millisekunden hh:mm:ss format -

//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))));

War das problem dieser TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)). Es hätte diese TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)) statt.

InformationsquelleAutor der Frage mre | 2012-01-27

Schreibe einen Kommentar