2012-06-07 8 views
12

Ich frage mich nur, warum einige Enums auf der TimeUnit-Klasse von Java fehlen?Java: Warum haben TimeUnit fehlende enums?

Tatsächlich ist der max TIMEUNIT ist TAG, während ich wie WEEK Sachen verwenden möchte, YEAR ...

+0

Wo ist das Limit? Was ist mit vierzehn Nächten? Jubiläen? Zettase-Sekunden? –

+1

Auch vorausgesetzt, dass ein Jahr nicht konstant ist, würde es nicht gut passen. Da die dokumentierte Verwendung der Klasse hauptsächlich dazu dient, zeitbasierte Methoden zu informieren, ist alles, was über einen Tag hinausgeht, für die beabsichtigte Verwendung wahrscheinlich nicht sinnvoll. –

Antwort

15

Die TimeUnit.DAYS konstant ein Intervall von 24 h darstellt, keine Kalendertag (Mitternacht bis Mitternacht). Alles über einen Tag hinaus (eine Woche, einen Monat, ein Jahr) ist eine Kalendereinheit, keine Zeiteinheit. Die Dauer von Kalendereinheiten hängt vom verwendeten Kalender ab: Eine Woche kann beispielsweise um eine Stunde länger sein, wenn die Sommerzeit ein- und ausgeht, Schaltjahre um einen Tag länger sind und so weiter. Aus diesem Grund wäre die Einbeziehung von Kalendereinheiten in TimeUnit Aufzählung nicht sinnvoll.

+0

Ich bin so dumm ... Danke –

+1

Java 8 bietet [java.time.temporal.ChronoUnit] (https://docs.oracle.com/javase/8/docs/api/java/time/temporal/ChronoUnit. html), die nützlich sein können. –

Verwandte Themen