В Java Date/Time API есть класс WeekFields
, содержащий среди прочего информацию о первом дне недели, которую можно получить при помощи метода getFirstDayOfWeek
.
Соответственно, получить экземпляр этого класса можно при помощи метода WeekFields::of(Locale locale)
, а системную локаль можно получить при помощи метода Locale.getDefault()
.
Аналогично, в устаревшем классе Calendar
есть подобный метод Calendar::getFirstDayOfWeek
, возвращающий целочисленную константу (1 - воскресенье (!), ... 7 - суббота).
Пример кода:
import java.util.*;
import java.time.*;
import java.time.temporal.*;
var locales = Arrays.asList(
Locale.getDefault(),
new Locale("ru", "RU"),
new Locale("fr", "FR"),
new Locale("ar", "DZ")
);
for(Locale loc : locales) {
DayOfWeek firstDayOfWeek = WeekFields.of(loc).getFirstDayOfWeek();
Calendar cal = Calendar.getInstance(loc);
System.out.println(loc.getDisplayCountry() + "\t-> first day: " + firstDayOfWeek
+ "\tcalendar: " + cal.getFirstDayOfWeek());
}
Результат:
United States -> first day: SUNDAY calendar: 1
Russia -> first day: MONDAY calendar: 2
France -> first day: MONDAY calendar: 2
Algeria -> first day: SATURDAY calendar: 7