lairdchris
Grünschnabel
Hallo,
ich hab da ein Problem mit DateFormat. Die Klasse scheint nicht in der Lage zu sein, ein Datum über die Kalenderwoche zu parsen, wenn der Wochenanfang nicht im gleichen Jahr liegt. (Für 2007 klappts nämlich, da war der 1.1. ein Montag)
Beispiel:
liefert mit JDK 1.6 die folgende Ausgabe:
Das Programm funktioniert mit JDK 1.4 problemlos. Mit JDK 1.6 klappts nur, wenn ich "df.setLenient(false)" weglasse, das brauche ich aber.
Weiß jemand was über das Problem oder hat jemand einen Workaround?
ich hab da ein Problem mit DateFormat. Die Klasse scheint nicht in der Lage zu sein, ein Datum über die Kalenderwoche zu parsen, wenn der Wochenanfang nicht im gleichen Jahr liegt. (Für 2007 klappts nämlich, da war der 1.1. ein Montag)
Beispiel:
Code:
SimpleDateFormat df = new SimpleDateFormat("'KW' w yyyy");
df.setLenient(false);
try {
String datum1 = df.format(new Date());
System.out.print(datum1 + " => ");
Date date1 = df.parse(datum1);
System.out.println(DateFormat.getDateTimeInstance().format(date1));
String datum2 = df.format(new GregorianCalendar(2009, 00, 01).getTime());
System.out.print(datum2 + " => ");
Date date2 = df.parse(datum2);
System.out.println(DateFormat.getDateTimeInstance().format(date2));
}
catch (ParseException ex) {
ex.printStackTrace();
}
liefert mit JDK 1.6 die folgende Ausgabe:
Code:
KW 3 2009 => 12.01.2009 00:00:00
KW 1 2009 => java.text.ParseException: Unparseable date: "KW 1 2009"
at java.text.DateFormat.parse(DateFormat.java:337)
at DateTest.main(DateTest.java:20)
Das Programm funktioniert mit JDK 1.4 problemlos. Mit JDK 1.6 klappts nur, wenn ich "df.setLenient(false)" weglasse, das brauche ich aber.
Weiß jemand was über das Problem oder hat jemand einen Workaround?