Kann jemand erklären, warum ich diese Werte bekomme, während ich versuche, ein Datum zu analysieren? Ich habe drei verschiedene Eingänge versucht, wie folgt:Merkwürdiges Verhalten von ww SimpleDateFormat
1) Dritte Woche von 2013
Date date = new SimpleDateFormat("ww.yyyy").parse("02.2013");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(cal.get(Calendar.WEEK_OF_YEAR) + "." + cal.get(Calendar.YEAR));
Welche Ausgänge: 02.2013
(wie erwartet)
2) Die erste Woche des Jahres 2013
Welche Ausgänge: 52.2012
(was für mich in Ordnung ist, seit der ersten Woche von 2013 ist auch die letzte von 2012)
3) Zweite Woche von 2013
Date date = new SimpleDateFormat("ww.yyyy").parse("01.2013");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(cal.get(Calendar.WEEK_OF_YEAR) + "." + cal.get(Calendar.YEAR));
Welche Ausgänge: 1.2012
(das macht absolut kein Sinn für mich)
Weiß jemand, warum dies geschieht ?? Ich muss ein Datum im Format (Woche des Jahres) analysieren. (Jahr). Benutze ich das falsche Muster?
Tipp: In Betracht ziehen, das Format der Wochentage so zu ändern, dass es dem durch den Standard [ISO 8601] (http://en.wikipedia.org/wiki/ISO_8601#Week_dates) definierten Format folgt. So: '2014-W19'. Die Bibliothek [Joda-Time] (http://www.joda.org/joda-time/) könnte Ihnen dann beim Analysieren und Erzeugen solcher Strings helfen, indem Sie ihre Formatierungen verwenden, die im [ISODateTimeFormat] (http: //www.joda. org/joda-Zeit/apidocs/org/joda/Zeit/Format/ISODateTimeFormat.html) Fabrik. –