2012-06-07 21 views
12

Mi chiedo, perché mancano alcune enumerazioni sulla classe TimeUnit di Java?Java: perché TimeUnit ha perso le enumerazioni?

In realtà il TIMEUNIT massima è giorno, mentre io vorrei usare cose come settimana, anno ...

+0

Dov'è il limite? Che mi dici delle quindicine? Giubilei? Zettaseconds? –

+1

Anche dato che un anno non è costante, non sarebbe una buona misura. Dal momento che l'uso documentato della classe è usato principalmente per informare i metodi basati sul tempo, qualsiasi cosa oltre il giorno è probabilmente irragionevole per l'uso previsto. –

risposta

15

La costante TimeUnit.DAYS rappresenta un intervallo di 24 ore, non un giorno di calendario (da mezzanotte a mezzanotte). Qualsiasi cosa oltre un giorno (una settimana, un mese, un anno) è un'unità di calendario, non un'unità di tempo. La durata delle unità del calendario dipende dal calendario in uso: ad esempio, una settimana può essere più lunga o più breve di un'ora nelle settimane in cui l'ora legale entra e non è più valida, gli anni bisestili sono più lunghi di un giorno e così via. Questo è il motivo per cui includere le unità del calendario nell'enumerazione TimeUnit non avrebbe senso.

+0

sono così stupido ... grazie –

+1

Java 8 fornisce [java.time.temporal.ChronoUnit] (https://docs.oracle.com/javase/8/docs/api/java/time/temporal/ChronoUnit. html) che potrebbe essere utile. –

Problemi correlati