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());
War es hilfreich?

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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top