Auf
java.net ist gerade ein netter
Blog-Artikel verlinkt, der das
java.util.concurrent
-Enum
TimeUnit vorstellt. Aus diesem Anlass eine kleine Idee, wofür ich dieses Enum und seine Umwandlung-Methoden schon gut gebrauchen konnte. Wenn man Zeitdifferenzen berechnet, benötigt man häufiger Konstanten von folgender Art:
public static final long MS_PRO_TAG
= 1L * 24L * 60L * 60L * 1000L;
Das funktioniert zwar, ist aber fehleranfällig, weil man sich bei Anzahl und Wert der Faktoren leicht vertun kann. Mit folgendem Ausdruck kann eine beliebige Anzahl Tage (hier: 1) in Millisekunden umgerechnet werden:
public static final long MS_PRO_TAG
= TimeUnit.DAYS.toMillis(1L);
Ebenso lassen sich Sekunden in Stunden umrechnen etc.:
assert TimeUnit.SECONDS.toHours(7250L) == 2;
Wie der andere Blog-Autor schon schreibt: Eigentlich gehört dieses Enum ins Package
java.lang
(oder vielleicht noch besser nach
java.util
).