Приведенный ниже код дает другой результат для Nougat и pre-Nougat. Взгляните и попробуйте сами, если хотите. Я был бы признателен, если бы кто-нибудь мог объяснить мне, почему и дать решение.
Я хочу правильное значение WEEK_OF_YEAR, зависящее от первого дня недели, на всех версиях Android. У меня есть приложение с временными таблицами, и я часто использую gregorianCalendar, поэтому мне не хочется переключаться на другой класс /lib.
//default first day of the week is Monday for replication. I live in the Netherlands, it weird.
Locale l = new Locale("nl", "NL");
GregorianCalendar test = new GregorianCalendar(l);
test.set(Calendar.YEAR, 2017);
test.set(Calendar.MONTH, 0);
test.set(Calendar.DAY_OF_MONTH, 29);//this is a Sunday
int week = test.get(Calendar.WEEK_OF_YEAR);//should be 4
test.setFirstDayOfWeek(1);//Set it to Sunday
int week2 = test.get(Calendar.WEEK_OF_YEAR);//should be 5 but is 4 below nougat???