Locale de = Locale.forLanguageTag("de");
WeekFields wf = WeekFields.of(de);
DayOfWeek firstDayOfWeek = wf.getFirstDayOfWeek();
System.out.println(firstDayOfWeek);
Это печатает:
ПОНЕДЕЛЬНИК
Не используйте запутанный старый Calendar
класс.Вы получили 2 как первый день недели.Но разве ты не должен был получить 1?Или 0?Как нумеруются дни недели?Забудьте о числах, используйте перечисление DayOfWeek
из java.time
, современный Java-интерфейс даты и времени.
Для более красивого вывода используйте DayOfWeek.getDisplayName
или DateTimeFormatter
.Если вам нужен номер, используйте DayOfWeek.getValue
:
System.out.println(firstDayOfWeek.getDisplayName(TextStyle.FULL, de));
System.out.println(firstDayOfWeek.getValue());
Вывод:
Montag
1
PS Также не используйте TimeZone
и другие устаревшие дату и времяклассы.java.time
намного приятнее работать.Этот факт хорошо показывает этот пример, но его типичное, безусловно, неслучайное.
Ссылка: Учебное пособие по Oracle: Дата и время , объясняющее, как использовать java.time
.