Ich möchte konvertieren String
zu Date
in verschiedenen Formaten.
Beispielsweise,
Ich bekomme vom Benutzer,
String fromDate = "19/05/2009"; // i.e. (dd/MM/yyyy) format
Ich möchte dies fromDate
als Datumsobjekt des "yyyy-MM-dd"
Formats konvertieren
Wie kann ich das machen?
Antworten:
Schau es dir an
SimpleDateFormat
. Der Code sieht ungefähr so aus:quelle
Date
Format erhalten?parse
und gehe nicht weiterformat
.parse
analysiert einen String auf ein Datum.parse
gibt mir indate format
alsFri Jan 06 00:01:00 EST 2012
aber es braucht im2012-01-06
DatumsformatSystem.out.println(anyDateObject)
der Standardmethode toString () aufgerufen wird, die in diesem Format gedruckt werden soll, zFri Jan 06 00:01:00 EST 2012
. Sie müssen es überschreiben, um Ihren Anforderungen zu entsprechen.java.util.Date
,java.util.Calendar
undjava.text.SimpleDateFormat
sind jetzt Erbe , durch die verdrängte java.time Klassen in Java gebaut 8 & Java 9. Siehe Tutorial von Oracle .tl; dr
Einzelheiten
Die anderen Antworten mit
java.util.Date
,java.sql.Date
undSimpleDateFormat
sind jetzt veraltet.LocalDate
Die moderne Art, Datum und Uhrzeit zu erstellen, besteht darin, speziell mit den Klassen java.time zu arbeiten
LocalDate
. DieLocalDate
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 .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.
Zur Konsole werfen.
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?
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 .quelle
Verwenden Sie die
SimpleDateFormat
Klasse:Verwendung:
Aus Effizienzgründen möchten Sie Ihre Formatierer in einer Hashmap speichern. Die Hashmap ist ein statisches Mitglied Ihrer util-Klasse.
quelle
Konvertieren Sie ein Zeichenfolgendatum in java.sql.Date
quelle
Überprüfen Sie die Javadocs auf
java.text.SimpleDateFormat
Es beschreibt alles, was Sie brauchen.quelle
Während es
SimpleDateFormat
in der Tat für Ihre Bedürfnisse funktioniert, möchten Sie vielleicht auch Joda Time ausprobieren , das anscheinend die Grundlage für die überarbeitete Datumsbibliothek in Java 7 ist. Obwohl ich es nicht oft verwendet habe, habe ich nur gute Dinge gehört darüber und wenn Sie Daten in Ihren Projekten ausgiebig manipulieren, lohnt es sich wahrscheinlich, sie zu untersuchen.quelle
Einfache Möglichkeit, ein Datum zu formatieren und in eine Zeichenfolge umzuwandeln
quelle
Ein
Date
Objekt hat kein Format , es ist eine Darstellung. Das Datum kann von aString
mit dem gewünschten Format angezeigt werden .ZB "
yyyy-MM-dd
", "yy-MMM-dd
", "dd-MMM-yy
" usw.Um dies zu erreichen, können Sie die verwenden
SimpleDateFormat
Versuche dies,
Diese Ausgabe: 2009-05-19
quelle
Angenommen, Sie haben eine Zeichenfolge wie diese:
Jetzt wollen wir dieses
String
Format in Java und Kotlin getrennt nach Datum und Uhrzeit ändern .JAVA:
Wir haben eine Methode zum Extrahieren des Datums :
Return
ist das: 17.09.2019Und wir haben eine Methode zum Extrahieren der Zeit :
Return
ist das: 10:56 UhrKOTLIN:
wir haben eine Funktion zum Extrakt Datum :
Return
ist das: 17.09.2019Und wir haben eine Methode zum Extrahieren der Zeit :
Return
ist das: 10:56 Uhrquelle
SimpleDateFormat
Klasse zu benutzen . Zumindest nicht als erste Option. Und das nicht ohne Vorbehalt. Heute haben wir so viel besser injava.time
der modernen Java-API für Datum und Uhrzeit und derenDateTimeFormatter
. AußerdemSimpleDateFormat
können 6 Dezimalstellen in Sekunden (Mikrosekunden) nicht korrekt analysiert werden.10:56 AM
was Sie sagen, sondern11:09 AM
(getestet auf Oracle jdk-11.0.3).DateTimeFormatter
wirminsdk 26
oder höher als es nicht gut ist10:56 AM