Я пытаюсь изменить firstDayOfWeek по умолчанию для java.util.Calendar с ВОСКРЕСЕНЬЯ на ПОНЕДЕЛЬНИК. Можно ли добиться этого с помощью конфигурации JVM вместо добавления этого фрагмента кода?
cal.setFirstDayOfWeek(Calendar.MONDAY);
Я пытаюсь изменить firstDayOfWeek по умолчанию для java.util.Calendar с ВОСКРЕСЕНЬЯ на ПОНЕДЕЛЬНИК. Можно ли добиться этого с помощью конфигурации JVM вместо добавления этого фрагмента кода?
cal.setFirstDayOfWeek(Calendar.MONDAY);
Первый день недели определяется текущей локалью. Если вы не установите языковой стандарт календаря (Calendar.getInstance (Locale) или new 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
(понедельник)Не забывайте, что это может изменить и другое поведение.
Согласно API:
Календарь определяет семидневную неделю, зависящую от локали, с использованием двух параметров: первого дня недели и минимального количества дней первой недели (от 1 до 7). Эти числа берутся из данных ресурса локали при создании календаря. Они также могут быть указаны явно с помощью методов установки их значений.
Поэтому, если вы убедитесь, что ваш языковой стандарт правильно настроен, это будет неявно установлено. Лично я бы предпочел явно установить это ...
См. # 64038 для получения информации о способах установки языкового стандарта из командной строки.
Вы пытались вызвать JVM с другой локалью? Но с побочными эффектами стоит быть осторожнее ...