Simple Monat zu ignorieren, wenn das Parsen
-
27-09-2019 - |
Frage
Der folgende Code gibt mir die geparsten Datum als „Mi 13. Januar 00.00.00 EST 2010“ anstelle von „Mi 13. Juni 00.00.00 EST 2010“. Irgendwelche Ideen sehr geschätzt.
SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss");
String str = "2010-06-13T00:00:00";
Date date = sf.parse(str);
System.out.println(" Date " + date.toString());
Lösung
Versuchen Sie:
"yyyy-MM-dd'T'HH:mm:ss"
bedeutet MM
Monat. mm
bedeutet Minuten. Lesen Sie die Dokumentation für SimpleDateFormat
für mehr Details die unterstützten Datums- und Zeitmuster.
Andere Tipps
Das Problem ist, dass Sie mit ‚mm‘ als Monat und ‚mm‘ Minuten darstellen. Im Folgenden finden Sie alle Daten verfügbare Formate, mehr doc lesen hier .
Symbol Meaning Kind Example
D day in year Number 189
E day of week Text E/EE/EEE:Tue, EEEE:Tuesday, EEEEE:T
F day of week in month Number 2 (2nd Wed in July)
G era designator Text AD
H hour in day (0-23) Number 0
K hour in am/pm (0-11) Number 0
L stand-alone month Text L:1 LL:01 LLL:Jan LLLL:January LLLLL:J
M month in year Text M:1 MM:01 MMM:Jan MMMM:January MMMMM:J
S fractional seconds Number 978
W week in month Number 2
Z time zone (RFC 822) Time Zone Z/ZZ/ZZZ:-0800 ZZZZ:GMT-08:00 ZZZZZ:-08:00
a am/pm marker Text PM
c stand-alone day of week Text c/cc/ccc:Tue, cccc:Tuesday, ccccc:T
d day in month Number 10
h hour in am/pm (1-12) Number 12
k hour in day (1-24) Number 24
m minute in hour Number 30
s second in minute Number 55
w week in year Number 27
G era designator Text AD
y year Number yy:10 y/yyy/yyyy:2010
z time zone Time Zone z/zz/zzz:PST zzzz:Pacific Standard
Modern Antwort:
String str = "2010-06-13T00:00:00";
LocalDateTime dateTime = LocalDateTime.parse(str);
System.out.println("Date-time " + dateTime);
Ausgabe:
Datum Zeit 2010-06-13T00: 00
Ich verwende und empfehle java.time
, die moderne Java Datum und Uhrzeit API. Wir haben nicht einmal eine explizite Formatierer müssen für die Analyse. Dies liegt daran, dass die Zeichenfolge im ISO 8601-Format ist, der internationale Standard, dass die java.time
Klassen als Standard analysieren. java.time
kam im Jahr 2014 aus.
Während im Jahr 2010, als diese Frage gestellt wurde, war SimpleDateFormat
, was wir für das Parsen von Daten und Zeiten hatten, dass die Klasse jetzt lange veraltet angesehen wird, zum Glück, denn es war auch schwierig.
Wenn Ihr String enthalten nur ein Datum ohne Tageszeit, verwenden Sie die LocalDate
Klasse in genau der gleichen Weise (dies wurde in eine doppelte Frage ).
String dateStr = "2018-05-23";
LocalDate date2 = LocalDate.parse(dateStr);
System.out.println(date2);
2018.05.23
Link: Oracle Tutorial: Datum Zeit zu erklären, wie java.time
verwenden.
Beispiel wenn Datum 06 07 2016
SimpleDateFormat sdf= new SimpleDateFormat("dd MM yyyy");
Sie können Komma, Hand, Schrägstrich oder Bindestrich zwischen diesem Format verwenden.
Ex: dd-mm-yyyy, it will display like(06-07-2016)
dd/mm/yyyy,it will display like(06/07/2016)
dd.mm.yyyy,it will display like(06.07.2016)
dd,mm,yyyy ,it will display like(06,07,2016)
MM - will display number of the Month.
MMM - will display Month Three character only(Ex: Jul)
MMMM - will display full month(Ex: July)
yyyy - will display full year(2016)
yy - will display last two digits(16)
hh - will display hours
mm -will display minutes
ss - will display seconds
a - will display AM or PM
Ex: if time is 12:09:10 PM means (hh:mm:ss a)
EEE- will display short week name(Ex: Wed)
EEEE- will display full week name(Ex: Wednesday)