MM: Millisekunden in lesbare Form formatieren

Beitrag lesen

Hallo zusammen,

ich habe folgendes Problem:
Ein long-Wert repräsentiert Millisekunden. Dieser Wert soll in eine lesbare Form gebracht werden. Dabei soll der Benutzer selbst ein Format angeben können. Ich brauche also eine Funktion, die z.B. 7380000 (das sind 123 Minuten) und "m 'Minuten'" (in Anlehnung ans SimpleDateFormat)  entgegennimmt und dann "123 Minuten" ausgibt. Gibt der Nutzer das Format in der Form "HH mm" an, soll die Funktion "02 03" (=2 Stunden und 3 Minuten" liefern.

Das ganze habe ich schon wie folgt implementiert:

public String format(long inMillis) {
  Date theDate = new Date(inMillis);
  SimpleDateFormat theFormat = new SimpleDateFormat(theFormatString);
  theFormat.setTimeZone(new SimpleTimeZone(0, "Null Offset"));
  return theFormat.format(theDate);
}

Die gute Nachricht: Es funktioniert fast!
Die schlechte: Eben nur fast. Das SimpleDateFormat liefert mir im ersten Beispiel nämlich nicht 123 Minuten, sondern nur 3 Minuten. Ist ja eigentlich auch logisch, weil der Gültigkeitsbereich von 0-59 nicht überschritten wird.

Gibt es eine Bibliothek, die das kann, hat jemand einen Tipp, wie ich das leicht selbst programmieren kann oder muss ich tatsächlich den ganzen "String-parsen-Millisekunden-umrechnen-und-schön-ausgeben"-Mechanismus selbst bauen?

Ich bin über jede Hilfe dankbar.

Vielen Dank im Vorraus und Gruß aus Köln
Markus