tl; dr
LocalDate.parse(
"19/05/2009" ,
DateTimeFormatter.ofPattern( "dd/MM/uuuu" )
)
Einzelheiten
Die anderen Antworten mit java.util.Date
, java.sql.Date
und SimpleDateFormat
sind jetzt veraltet.
LocalDate
Die moderne Art, Datum und Uhrzeit zu erstellen, besteht darin, speziell mit den Klassen java.time zu arbeiten LocalDate
. Die LocalDate
Klasse repräsentiert einen Nur-Datum-Wert ohne Tageszeit und ohne Zeitzone.
DateTimeFormatter
Verwenden Sie die DateTimeFormatter
Klasse , um eine Zeichenfolge zu analysieren oder zu generieren, die einen Datums- / Uhrzeitwert darstellt .
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu" );
LocalDate ld = LocalDate.parse( "19/05/2009" , f );
Kombinieren Sie ein Datums- / Uhrzeitobjekt nicht mit einem String, der seinen Wert darstellt. Ein Datums- / Uhrzeitobjekt hat kein Format , ein String dagegen. Ein Datum-Zeit - Objekt, beispielsweise LocalDate
kann erzeugt einen String seinen internen Wert zu repräsentieren, aber das Datum Zeitobjekt und die Zeichenfolge sind getrennt verschiedene Objekte.
Sie können ein beliebiges benutzerdefiniertes Format angeben, um einen String zu generieren. Oder lassen Sie java.time die Arbeit der automatischen Lokalisierung erledigen.
DateTimeFormatter f =
DateTimeFormatter.ofLocalizedDate( FormatStyle.FULL )
.withLocale( Locale.CANADA_FRENCH ) ;
String output = ld.format( f );
Zur Konsole werfen.
System.out.println( "ld: " + ld + " | output: " + output );
ld: 2009-05-19 | Ausgabe: Karneval 19. Mai 2009
Sehen Sie in Aktion in IdeOne.com .
Über java.time
Das java.time- Framework ist in Java 8 und höher integriert. Diese Klassen verdrängen die lästigen alten Legacy - Datum-Zeit - Klassen wie java.util.Date
, Calendar
, & SimpleDateFormat
.
Das Joda-Time- Projekt, das sich jetzt im Wartungsmodus befindet , empfiehlt die Migration zu den Klassen java.time .
Weitere Informationen finden Sie im Oracle-Lernprogramm . Suchen Sie im Stapelüberlauf nach vielen Beispielen und Erklärungen. Die Spezifikation ist JSR 310 .
Sie können java.time- Objekte direkt mit Ihrer Datenbank austauschen . Verwenden Sie einen JDBC-Treiber, der mit JDBC 4.2 oder höher kompatibel ist . Keine Notwendigkeit für Strings, keine Notwendigkeit für java.sql.*
Klassen.
Woher bekomme ich die java.time-Klassen?
- Java SE 8 , Java SE 9 und höher
- Eingebaut.
- Teil der Standard-Java-API mit einer gebündelten Implementierung.
- Java 9 fügt einige kleinere Funktionen und Korrekturen hinzu.
- Java SE 6 und Java SE 7
- Android
- Spätere Versionen von Android-Bundle-Implementierungen der Klassen java.time.
- Für frühere Android -Geräte ( <26) passt das ThreeTenABP- Projekt ThreeTen-Backport (oben erwähnt) an. Siehe Verwendung von ThreeTenABP… .
Das ThreeTen-Extra- Projekt erweitert java.time um zusätzliche Klassen. Dieses Projekt ist ein Testfeld für mögliche zukünftige Ergänzungen von java.time. Sie können einige nützliche Klassen hier wie finden Interval
, YearWeek
, YearQuarter
, und mehr .