Esiste un modo diverso da questi due?
Si C'è.
LocalDate.now(
ZoneId.of( "Pacific/Auckland" )
)
java.time
Java 8 e versioni successive includono il nuovo pacchetto java.time integrato. Vedi Tutorial . Gran parte della funzionalità java.time è trasferita su Java 6 e 7 in ThreeTen-Backport e ulteriormente adattata ad Android in ThreeTenABP .
Simile a Joda-Time , java.time offre una LocalDate
classe per rappresentare un valore di sola data senza ora del giorno e senza fuso orario.
Si noti che il fuso orario è fondamentale per determinare una data particolare. Allo scoccare della mezzanotte a Parigi, ad esempio, la data è ancora "ieri" a Montréal.
LocalDate today = LocalDate.now( ZoneId.of( "America/Montreal" ) ) ;
Per impostazione predefinita, java.time utilizza lo standard ISO 8601 per generare una rappresentazione in formato stringa di un valore data o data-ora. (Un'altra somiglianza con Joda-Time.) Quindi chiama semplicementetoString()
per generare un testo simile 2015-05-21
.
String output = today.toString() ;
Informazioni su java.time
Il framework java.time è integrato in Java 8 e versioni successive. Queste classi soppiantare la vecchia fastidiosi legacy classi data-time come java.util.Date
,Calendar
, e SimpleDateFormat
.
Il progetto Joda-Time , ora in modalità manutenzione , consiglia la migrazione alle classi java.time .
Per saperne di più, consulta il tutorial Oracle . E cerca Stack Overflow per molti esempi e spiegazioni. La specifica è JSR 310 .
Dove ottenere le classi java.time?
- Java SE 8 , Java SE 9 e versioni successive
- Built-in.
- Parte dell'API Java standard con un'implementazione in bundle.
- Java 9 aggiunge alcune funzionalità e correzioni minori.
- Java SE 6 e Java SE 7
- Gran parte della funzionalità java.time è trasferita su Java 6 e 7 in ThreeTen-Backport .
- androide
- Versioni successive di implementazioni di bundle Android delle classi java.time.
- Per precedenza Android, il ThreeTenABP progetto si adatta ThreeTen-Backport (di cui sopra). Vedi Come usare ThreeTenABP… .
Il progetto ThreeTen-Extra estende java.time con classi aggiuntive. Questo progetto è un banco di prova per possibili aggiunte future a java.time. Si possono trovare alcune classi utili, come per esempio Interval
, YearWeek
, YearQuarter
e altro .