Date/Time Начинающий

Форматируйте значения дат с помощью потокобезопасного неизменяемого DateTimeFormatter.

✕ Pre-Java 8
// Not thread-safe!
SimpleDateFormat sdf =
    new SimpleDateFormat("yyyy-MM-dd");
String formatted = sdf.format(date);
// Must synchronize for concurrent use
✓ Java 8+
DateTimeFormatter fmt =
    DateTimeFormatter.ofPattern(
        "uuuu-MM-dd");
String formatted =
    LocalDate.now().format(fmt);
// Thread-safe, immutable
Заметили проблему в этом коде? Сообщите нам.
🛡️

Потокобезопасность

Форматтеры можно использовать между потоками без синхронизации.

📋

Встроенные форматы

ISO_LOCAL_DATE, ISO_INSTANT и другие для стандартных форматов.

🔒

Неизменяемость

Можно безопасно хранить как static final константу.

Старый подход
SimpleDateFormat
Современный подход
DateTimeFormatter
Начиная с JDK
8
Сложность
Начинающий
Форматирование дат
Доступно

Широко доступен начиная с JDK 8 (март 2014)

DateTimeFormatter неизменяем и потокобезопасен, в отличие от SimpleDateFormat. Его можно сохранять как константу и использовать совместно. Для стандартных форматов доступны предопределённые форматтеры, такие как ISO_LOCAL_DATE.