2016-07-03 7 views
6

Ich kann nicht scheinen, mein Datum mit variablen Leerzeichen zu parsen.Java 8 Zeit mit Variable Tag

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM d HH:mm:ss yyyy"); 
LocalDateTime dateTime = LocalDateTime.parse(date, formatter); 

Dies ist das Format I

Sat Jul 2 08:52:13 2016 
Sat Jul 12 08:52:13 2016 

ich oben bekommen kann passieren, wenn ich an dem unter meinem Formatierer ändern, aber es bricht mit einer 2-stellige Nummer

akzeptieren
EEE MMM d HH:mm:ss yyyy 
+0

Dies ist eine Option: [Beseitigung der subtilen Leerzeichen Handhabung Unterschied zwischen DateTimeFormat und Joda's DateTimeFormatter] (http://stackoverflow.com/q/19439821) – Tom

+0

Das ist eine gute Idee. Ich hatte gehofft, dass es sich um eine offizielle Antwort handeln würde, aber es ist eine einfache Bearbeitung. Vielen Dank. – Pumphouse

Antwort

6

Sie können Muster von "EEE MMM ppd HH: mm: ss yyyy" für Ihr Format versuchen.

ppd gibt den Tag auf der linken Seite aufgefüllt mit Leerzeichen auf eine Breite von 2.

See Pad Modifikator in DateTimeFormatter für weitere Details.

+0

Das funktioniert gut und scheint eine wirklich saubere Lösung zu sein, verglichen mit dem Formatieren der Zeichenkette vor dem Formatieren der Zeichenkette, wie es die replaceAll() Antwort erfordert. – Pumphouse