PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [JAVA] Format Klasse für Bytes und Zeit?


Gast
2007-05-23, 15:04:39
Gibt es in Java SE 5 Klassen die wie java.text.DecimalFormat funktionieren, aber entweder Sekunden formatieren oder Bytes so wie hier zum Beispiel:

312s = 5m 12s
524.288b = 512kB

Könnte man natürlich in ChoiceFormat selbst machen, aber frage mich ob man dann das Rad neu erfinden würde. ;)

HellHorse
2007-05-23, 18:36:42
Nicht dass ich wüsste. In der standard Java API gibt's ja leider nicht mal eine Klasse, die Zeitspannen repräsentiert. Und in der format String API ist auch nichts.

RMC
2007-05-23, 19:27:27
Naja es gibt zB SimpleDateFormat um Datumsangaben zu formatieren, aber das bringt dir glaub ich nix wenn du nur Sekunden hast.

PatkIllA
2007-05-23, 19:31:10
Die Datumsklassen sind da normalerweise recht nachsichtig, wenn man die lenient Eigenschaft entsprechend einstellt.
Da kann man dann auch 30 Februar eingeben und er macht automatisch den 2. März daraus. Das ist dann aber wirklich eine Eigenschaft der Datumsklasse und nicht des Formatierers.

f.reischl
2007-05-24, 07:23:14
long sek = 312;
Date date = new Date(sek * 1000);
String time = new SimpleDateFormat("mm'm 'ss's'").format(date);
System.out.println(time);

HellHorse
2007-05-24, 09:56:04
SimpleDateFormat geht auch nicht, wenn du mehr als 60 Minuten hast.

Eine Alternative zu SimpleDateFormat wären format strings, die aber genau die gleichen Probleme haben:

long seconds = 312;
System.out.printf("%1$tMm %1$tSs", seconds * 1000);