2016-08-19 2 views
5

Ich hatte ein Stück Code, das irgendwie funktioniert ganz gut und jetzt arbeitete nicht.Java Localtime Parse Exception

ich in einer CSV-Datei lese und eine Fehlermeldung erhalten, wenn sie in einem Zeitfeld des Formats 4:38 zu lesen.

Mein Code, der die Ausnahme auslöst ist:

LocalTime.parse("4:38", DateTimeFormatter.ofPattern("HH:mm")) 

Ich habe auch versucht "H:mm" oder "H:m" für das Muster, aber es wirft die gleiche Ausnahme: Text '4:38' could not be parsed at index 0. Irgendeine Idee, warum es eine Ausnahme an der Stundenzahl wirft?

Ich bin mit Java 8.em

+0

Verwenden Sie den Wert von "04:38" ' – DimaSan

+0

Das bedeutet, ich habe die gesamte CSV-Datei bearbeiten. Gibt es keinen anderen Weg? – k88

+0

http://stackoverflow.com/questions/30754259/jdk8-unable-to-parse-localtime – kuhajeyan

Antwort

9

Das Muster muss einen einzigen "H" und einen einzigen "m".

LocalTime.parse("4:38", DateTimeFormatter.ofPattern("H:m")); 

Es funktioniert gut für 4:38 und 14:38.

Official Doc: Siehe "Muster für die Formatierung und Parsing"

+0

Das habe ich mir auch gedacht. Es stellte sich heraus, ich habe vergessen, dass ich parsings zwei identische Werte bin, und die Ausnahme von der doppelten Wert geworfen wurde. Vielen Dank! – k88

0

"H: mm" arbeitet für mich. enter image description hereenter image description here

+0

Bitte fügen Sie den Code direkt statt einen Screenshot ... – assylias