2014-01-17 13 views
9

Ich Ausführung folgenden Code zu analysieren, die michRuntime Ausnahme bei dem Versuch, Datum Zeit mit joda DateTimeFormatter

"Exception in thread "main" org.joda.time.IllegalFieldValueException: Cannot parse "12/17/2017 23:10": Value 23 for clockhourOfHalfday must be in the range [1,12]"

DateTimeFormatter dt = DateTimeFormat.forPattern("MM/dd/yyyy hh:mm"); 
System.out.println(dt.parseDateTime("12/17/2017 23:10")); 

Wenn ich "12/17/2017 02:10" wird analysieren, gibt dann führt sie erfolgreich.

Also im Grunde muss ich Zeit mit 24-Stunden-Format zu analysieren.

Vielen Dank im Voraus.

Antwort

23

h ist für Halbtag in JodaTime wie Sie in der Ausnahme sehen können.
Sie benötigen H (oder möglicherweise k) zu verwenden:

DateTimeFormatter dt = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm"); 
System.out.println(dt.parseDateTime("12/17/2017 23:10")); 

Weitere Informationen gibt es in der DateTimeFormat API ist.

+0

Es funktioniert. Danke :) – Rahul

+3

(Es ist die 12-Stunden-Uhr in SimpleDateFormat auch ...) –

2

Es kann auch mit Simple Date Format erreicht werden.

DateFormat readDate = new SimpleDateFormat("MM/dd/yyyy HH:mm"); 
Date date = readDate.parse("12/17/2017 23:10"); 
DateFormat writeDate = new SimpleDateFormat("MM/dd/yyyy HH:mm"); 
System.out.println(writeDate.format(date)); 
Verwandte Themen