Как указать firstDayOfWeek для java.util.Calendar, используя аргумент JVM
Я пытаюсь изменить default firstDayOfWeek для java.util.Calendar от SUNDAY до MONDAY. Возможно ли достичь этого через конфигурацию JVM вместо добавления этого фрагмента кода?
cal.setFirstDayOfWeek(Calendar.MONDAY);
Ответы
Ответ 1
Первый день недели происходит от текущей локали. Если вы не задали языковой стандарт календаря (Calendar.getInstance(Locale) или новый GregorianCalendar (Locale)), он будет использовать системные настройки по умолчанию. Системное значение по умолчанию может быть переопределено параметром JVM:
public static void main(String[] args) {
Calendar c = new GregorianCalendar();
System.out.println(Locale.getDefault() + ": " + c.getFirstDayOfWeek());
}
Это должно показывать другой результат с различными параметрами JVM для языка/страны:
-
-Duser.language=en -Duser.country=US
→ en_US: 1
(воскресенье)
-
-Duser.language=en -Duser.country=GB
→ en_GB: 2
(понедельник)
Не забывайте, что это может изменить и другие behavio (u) r.
Ответ 2
В соответствии с API:
Календарь определяет семидневную недельную неделю, используя два параметра: первый день недели и минимальные дни в первую неделю (от 1 до 7). Эти числа берутся из данных ресурса локали при построении Календаря. Они также могут быть указаны явно через методы для установки их значений.
Поэтому, если вы убедитесь, что ваш языковой стандарт настроен соответствующим образом, это будет неявно задано. Лично я бы предпочел явно установить это...
См. # 64038 о способах установки локали из командной строки.
Ответ 3
Вы пытались вызвать JVM с другим языком? Но вы должны быть осторожны с побочными эффектами...