8
次のコードは、特定の日の勤務時間を計算します。Javaカレンダーの週のバグ?
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar cal = new GregorianCalendar();
cal.setTime(df.parse("2015-12-27 08:00:00"));
System.err.printf("%d.%02d\n", cal.getWeekYear(), cal.get(Calendar.WEEK_OF_YEAR));
現在、2016.01が印刷されています。
私は仕事の週番号の指定を理解しているので、2016.01は2016年の4日間を持つ最初の週ですが、12月27日がこの週に属することはできません。
Java 7でこれを行う方法はありますか?月曜日に週が始まると仮定して任意の年に動作しますか?
週間のルールはどのようなロケールですか? – nos
'cal.getMinimalDaysInFirstWeek()'と一緒に 'cal.getFirstDayOfWeek()'が返すものは何ですか? –
@ JonSkeet、それは1に設定されていました。それを4に設定してください。 – Evgeny