Ответ 1
Объекты Locale
не контролируют первый день недели. Это выполняется классом Calendar
следующим образом:
Locale locale = Locale.forLanguageTag("ar-EG");
Calendar calendar = Calendar.getInstance(locale);
calendar.setFirstDayOfWeek(Calendar.SUNDAY);
Согласно вашему комментарию на Gautam Jose ответьте:
Обычно это было бы прекрасно. Дело в том, что элемент управления, который я использую, сохраняет экземпляры объектов Calendar в соответствии с локалью по умолчанию (область приложения по умолчанию), поэтому пользовательский локаль. Я на самом деле попробовал обратное проектирование элемента управления, и он не обеспечивает свободу действий вокруг проблемы из-за этого, используя частные члены (то есть: наследование не может помочь здесь)
Вам не нужно наследовать, если вы измените эти private
члены напрямую, используя API отражения Java.
Сначала осмотрите класс управления, чтобы найти поле " Calendar
:
public class CalendarControl {
private Calendar calendar;
}
Теперь используйте:
CalendarControl control; // The instance to manipulate
try {
Field field = control.getClass().getDeclaredField("calendar");
field.setAccessible(true);
field.set(control, calendar); // Pass the new object we created at top of this answer
} catch (Exception ex) {
// You must catch NoSuchFieldException and IllegalAccessException here
}