2014-10-27 5 views
23

Java 8 introdotto ChronoUnit che è in gran parte equivalente a TimeUnit introdotto in Java 5.Conversione di TimeUnit in ChronoUnit?

C'è una funzione esistente per la conversione di un TIMEUNIT a ChronoUnit? (Sì, so come scrivere il mio)

+1

Y ou dovrebbe notare che non tutti i 'ChronoUnit' è mappable a' TimeUnit', ad esempio 'months'. Cosa farai in questo caso? –

+1

@MenoHochschild, buon punto. In realtà ero interessato solo alla mappatura a senso unico. Aggiornerò la domanda di conseguenza. – Gili

risposta

7

A un certo punto durante lo sviluppo, è possibile creare un Duration da un TimeUnit. https://github.com/ThreeTen/threeten/blob/3b4c40e3e7a5dd7a4993ee19e1c156e4e65432b3/src/main/java/javax/time/Duration.java#L293 Tuttavia questo è stato rimosso per la versione finale del codice in Java SE 8.

non so di qualsiasi routine pre-confezionati per eseguire la conversione, ma dovrebbe essere aggiunto al ThreeTen-Extra, probabilmente nel Temporals.

UPDATE: Questo è stato fissato dal https://github.com/ThreeTen/threeten-extra/issues/22

+0

Grazie per il chiarimento. Ci sono piani per aggiungere questo nella API di base per il futuro? – Gili

+0

Non ho alcun piano immediato per questo, ma io t avrebbe senso farlo. – JodaStephen

16

Java 9

In Java 9 API TimeUnit ottenuto esteso e permette per la conversione tra TimeUnit e ChronoUnit:

TimeUnit.toChronoUnit() // returns a ChronoUnit 
TimeUnit.of(ChronoUnit chronoUnit) // returns a TimeUnit 

vedi: JDK-8141452