Ich schrieb eine einfache Util-Methode, um eine String
in Java zu util.Date
zu konvertieren. Was ich nicht in der Lage bin, ist herauszufinden, warum das Verfahren für den ersten Eingang arbeitet, und nicht für die zweite gegeben, dass die Eingänge sind identisch:Inkonsistente ParseExeption mit Datenformat in Java
Code:
package util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDate {
public Date getDateFromString(String strDate, String dateFormat) {
DateFormat df = new SimpleDateFormat(dateFormat);
Date date = null;
try {
date = df.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(date);
return date;
}
public static void main(String[] args) {
StringToDate s2d = new StringToDate();
s2d.getDateFromString("12-18-11, 10:36 AM","MM-dd-yy, hh:mm a");
s2d.getDateFromString("02-04-12, 01:17 PM","MM-dd-yy, hh:mm a");
}
}
Ausgang:
Sun Dec 18 10:36:00 CET 2011
null
java.text.ParseException: Unparseable date: "02-04-12, 01:17 PM"
at java.text.DateFormat.parse(DateFormat.java:337)
at util.StringToDate.getDateFromString(StringToDate.java:17)
at util.StringToDate.main(StringToDate.java:33)
Logisch sollte der Ausgang Sat Feb 04 13:17:00 CET 2012
durch den ersten Ausgang gegangen sein. Warum wird ParseException
geworfen?
EDIT: Die folgenden zwei Zeilen korrekt funktionieren:
s2d.getDateFromString("02-04-12", "MM-dd-yy");
s2d.getDateFromString("01:17 PM", "hh:mm a");
Ausgang:
Sat Feb 04 00:00:00 CET 2012
Thu Jan 01 13:17:00 CET 1970
Aber die Ausnahme geschieht, wenn ich versuche, zusammen sowohl Datum und Zeit zu analysieren.
Ich bin verwirrt - Es funktioniert gut für mich. –
Ich auch - in welcher Kultur bist du? Danke für die Aufnahme eines kurzen, aber kompletten Programms, wohlgemerkt :) –
@JonSkeet: Ich verstehe nicht, was du meinst mit "in welcher Kultur bist du?", Aber danke für das Kompliment! Funktioniert das Programm für Sie? Ich verwende JDK 1.6 (1.6.0.11). Ich habe versucht, Eclipse und sogar die klassische Befehlsaufforderung Route des oben genannten [SSCCE] (http://homepage1.nifty.com/algafield/sscce.html). Trotzdem, dieselbe Ausnahme; gleiche Inkonsistenz. Hilfe! – SNag