tl; dr
LocalDate.parse(
"19/05/2009" ,
DateTimeFormatter.ofPattern( "dd/MM/uuuu" )
)
Dettagli
Le altre risposte con java.util.Date
, java.sql.Date
e SimpleDateFormat
sono ormai superate.
LocalDate
Il modo moderno di fare data-ora è lavorare con le classi java.time, in particolare LocalDate
. La LocalDate
classe rappresenta un valore di sola data senza ora del giorno e senza fuso orario.
DateTimeFormatter
Per analizzare o generare una stringa che rappresenta un valore di data e ora, utilizzare la DateTimeFormatter
classe.
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu" );
LocalDate ld = LocalDate.parse( "19/05/2009" , f );
Non confondere un oggetto data-ora con una stringa che ne rappresenta il valore. Un oggetto data-ora non ha formato , mentre un oggetto String sì. Un oggetto data-ora, ad esempio LocalDate
, può generare una stringa per rappresentarne il valore interno, ma l'oggetto data-ora e la stringa sono oggetti distinti separati.
È possibile specificare qualsiasi formato personalizzato per generare una stringa. Oppure lascia che java.time si occupi della localizzazione automatica.
DateTimeFormatter f =
DateTimeFormatter.ofLocalizedDate( FormatStyle.FULL )
.withLocale( Locale.CANADA_FRENCH ) ;
String output = ld.format( f );
Scarica su console.
System.out.println( "ld: " + ld + " | output: " + output );
ld: 2009-05-19 | uscita: martedì 19 maggio 2009
Guarda in azione su IdeOne.com .
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à di manutenzione , consiglia la migrazione alle classi java.time .
Per saperne di più, vedere il tutorial Oracle . E cerca Stack Overflow per molti esempi e spiegazioni. La specifica è JSR 310 .
Puoi scambiare oggetti java.time direttamente con il tuo database. Utilizza un driver JDBC conforme a JDBC 4.2 o successivo. Non c'è bisogno di stringhe, non c'è bisogno di java.sql.*
classi.
Dove ottenere le classi java.time?
- Java SE 8 , Java SE 9 e versioni successive
- Incorporato.
- 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 delle funzionalità java.time sono portate indietro a Java 6 e 7 in ThreeTen-Backport .
- Android
- Versioni successive delle implementazioni di bundle Android delle classi java.time.
- Per precedenza Android (<26), 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 future aggiunte a java.time. Si possono trovare alcune classi utili, come per esempio Interval
, YearWeek
, YearQuarter
e altro .