Научитесь определять, к какому дню недели относится данная дата в Java. Днями недели считаются все 7 дней с воскресенья, понедельника по субботу.
1. Перечисление DayOfWeek
DayOfWeek — это перечисление, представляющее семь дней недели: понедельник, вторник, среда, четверг, пятница, суббота и воскресенье.
- Так как это перечисление, оно имеет порядковые значения, связанные с каждым днем. Это от 1(понедельник) до 7(воскресенье).
- Некоторые локали также присваивают дням разные числовые значения, объявляя воскресенье имеющим значение 1, однако этот класс не поддерживает это.
- Для получения числового представления рекомендуется использовать getValue().
- Это неизменяемое и потокобезопасное перечисление.
2. Определение DayOfWeek из LocalDate
Класс LocalDate имеет метод getDayOfWeek(), который возвращает значение перечисления, представляющее этот день недели.
LocalDate today = LocalDate.now();System.out.println( today.getDayOfWeek() ); // SUNDAYSystem.out.println( today.getDayOfWeek().getValue() ); // 7
Подобно LocalDate, другие временные классы также предоставляют этот метод.
- LocalDate получитьДеньНедели()
- LocalDateTime получитьДеньНедели()
- Зонированная дата и время getDayOfWeek()
3. Локализованный дисплей
Используйте getDisplayName(TextStyle, Locale), чтобы получить значение дня недели в зависимости от локали.
DayOfWeek dayOfWeek = LocalDate.now().getDayOfWeek();String displayName = dayOfWeek.getDisplayName(TextStyle.FULL, Locale.getDefault()); // SundayString displayNameInGerman = dayOfWeek.getDisplayName(TextStyle.FULL, Locale.GERMAN); // Sonntag