2012-06-07 21 views
12

Po prostu zastanawiam się, dlaczego brakuje niektórych wyliczeń w klasie TimeUnit języka Java?Java: dlaczego TimeUnit brakuje wyliczenia?

Właściwie max TIMEUNIT jest DZIEŃ natomiast chciałbym używać rzeczy jak tydzień, rok ...

+0

Gdzie jest limit? A co z fortunami? Jubileusze? Zettaseconds? –

+1

Również biorąc pod uwagę, że rok nie jest stały, nie byłoby to dobre dopasowanie. Ponieważ udokumentowane użycie klasy jest głównie używane do informowania o metodzie opartej na czasie, wszystko poza dniem jest prawdopodobnie nieuzasadnione dla zamierzonego użycia. –

Odpowiedz

15

TimeUnit.DAYS stała reprezentuje przedział 24 godzin, a nie dzień kalendarzowy (od północy do północy). Wszystko poza dniem (tydzień, miesiąc, rok) to jednostka kalendarza, a nie jednostka czasu. Czas trwania jednostek kalendarza zależy od używanego kalendarza: na przykład tydzień może być dłuższy lub krótszy o godzinę w tygodniach, w których czas letni przestaje obowiązywać, a lata przestępne są dłuższe o jeden dzień i tak dalej. Dlatego uwzględnienie jednostek kalendarza w wyliczaniu TimeUnit nie ma sensu.

+0

Jestem taki głupi ... dzięki –

+1

Java 8 zapewnia [java.time.temporal.ChronoUnit] (https://docs.oracle.com/javase/8/docs/api/java/time/temporal/ChronoUnit. html), które mogą być przydatne. –

Powiązane problemy