Отображение дня недели в формате даты в Java: с примерами

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для отображения дня недели в Java можно воспользоваться классами SimpleDateFormat или DateTimeFormatter, используя шаблон "EEEE".

Пример с SimpleDateFormat:

Java
Скопировать код
System.out.println(new SimpleDateFormat("EEEE").format(new Date()));

Пример с DateTimeFormatter (доступен начиная с Java 8):

Java
Скопировать код
System.out.println(LocalDate.now().format(DateTimeFormatter.ofPattern("EEEE")));

Оба метода вернут полное название дня недели, например, "Среда".

Множество форматов дат

Java предлагает большое количество форматов для отображения дат. Разберем, как выводить день недели.

Размер не всегда имеет значение: использование сокращений и комбинаций

Можно разнообразить вывод, комбинировав различные элементы даты:

Java
Скопировать код
// Краткость – сестра таланта
SimpleDateFormat sdfShort = new SimpleDateFormat("E");
System.out.println("Сокращенный формат: " + sdfShort.format(new Date())); // Выведет "Ср".

// Три в одном
SimpleDateFormat sdfCombo = new SimpleDateFormat("yyyy-MM-E");
System.out.println("Комбинация: " + sdfCombo.format(new Date())); // Выведет, например, "2023-03-Ср".

Многоязычная поддержка: дни недели с учетом локализации

Учитывайте локаль пользователя для корректного отображения дат:

Java
Скопировать код
// Вы говорите по-французски?
DateTimeFormatter formatterWithLocale = DateTimeFormatter.ofPattern("EEEE", Locale.FRENCH);
System.out.println(LocalDate.now().format(formatterWithLocale)); // Выведет "mercredi", а не "Wednesday".

Java 8+: новые возможности для работы с датами

В Java 8 появилась библиотека java.time, которая предоставила новые инструменты для работы с датой и временем:

Java
Скопировать код
DayOfWeek day = LocalDate.now().getDayOfWeek();
System.out.println(day.getDisplayName(TextStyle.FULL, Locale.ENGLISH)); // Вернет "Wednesday".

Данный подход обеспечивает потокобезопасность и большую устойчивость к ошибкам.

Когда важны недели: нумерация недель

Если вы следите за неделями и используете ISO-стандарты, можно применить TemporalField из java.time:

Java
Скопировать код
int isoWeekOfYear = LocalDate.now().get(WeekFields.ISO.weekOfYear());
System.out.println("Номер недели по ISO: " + isoWeekOfYear);

Знания из Stack Overflow и ThreeTen-Extra

Stack Overflow – ценный источник готовых решений и полезных практик. Библиотека ThreeTen-Extra расширяет возможности java.time.

Визуализация

Представьте, что календарь начал разговаривать:

Java
Скопировать код
String pattern = "EEEE"; // Магия дней недели
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String today = simpleDateFormat.format(new Date());
System.out.println(today);
Markdown
Скопировать код
📅: "Тихонько шепчу тебе дату..."
🗓️ -> 📅: "Сегодняшний день не уйдет от меня! Это среда, ух-хах! 🗣️"
// Ваш разговорчивый календарь и волшебство "EEEE"!

Тонкий лед: обработка исключений и чтение документации

Обращение с форматами дат требует аккуратности, чтобы избежать возникновения исключений:

Java
Скопировать код
try {
    SimpleDateFormat sdf = new SimpleDateFormat("EEEE"); // Надежный инструмент для работы с датами
    System.out.println(sdf.format(new Date())); // "Вау, это дата!"
} catch(IllegalArgumentException e){
    System.err.println("Похоже, ошибка в шаблоне!");
}

Для эффективной работы с датами полезно изучить документацию по SimpleDateFormat и DateTimeFormatter.

Как настраивать отображение дат

Java позволяет креативно подходить к форматированию дат:

Java
Скопировать код
// Украсим дату!
String customPattern = "EEEE, d MMMM yyyy 'г.'";
DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern(customPattern);
System.out.println(LocalDate.now().format(customFormatter)); // Выведет "Среда, 29 марта 2023 г."

Гибкая настройка отображения дат в Java открывает широкие возможности для представления данных.

Полезные материалы

  1. SimpleDateFormat (Java Platform SE 8) — Официальная документация SimpleDateFormat.
  2. DateTimeFormatter (Java Platform SE 8) — Документация по DateTimeFormatter.
  3. Использование Предопределенных Форматов (Руководства Oracle по Java™) — Руководство Oracle по форматированию дат в Java.
  4. Обзор работы с датой и временем в Java.
  5. Подробно о SimpleDateFormat в Java.
  6. Подробнее о работе с датой и временем в Java 8.