年の特定の週番号の月曜日を計算したい。これは私がそれを行う方法です:
final GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
calendar.clear();
calendar.set(Calendar.YEAR, 2012); // set to 2012
calendar.set(Calendar.WEEK_OF_YEAR, 20); // set to week number 20
calendar.setTimeZone(TimeZone.getTimeZone("Europe/Berlin")); // set time zone
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yy"); // german format
System.out.println(sdf.format(calendar.getTime())); // return date
これは 2012 年 5 月 14 日 (ドイツ語の形式では 14.05.12) を返さなければなりませんが、2012 年 5 月 16 日を返しますが、これは間違っています。
したがって、2012 年の場合は +2、2011 年は正しく、2010 年は -1 です。
GregorianCalendar が間違った日付を計算するのはなぜですか?
ドイツからよろしくお願いします。