Formatuj daty przez niezmienny i bezpieczny wątkowo DateTimeFormatter.
Porównanie kodu
✕ 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
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
Wątków bezpieczeństwo
Możesz współdzielić formattery między wątkami bez synchronizacji.
Wbudowane formaty
ISO_LOCAL_DATE, ISO_INSTANT i inne standardowe formaty.
Niemutowalność
Formatter można bezpiecznie trzymać jako static final.
Stare podejście
SimpleDateFormat
Nowoczesne podejście
DateTimeFormatter
Od JDK
8
Poziom trudności
Początkujący
Wsparcie JDK
Formatowanie dat
Dostępne
Szeroko dostępne od JDK 8 (marzec 2014)
Jak to działa
DateTimeFormatter jest niemutowalny i bezpieczny wątkowo, w przeciwieństwie do SimpleDateFormat. Możesz przechowywać go jako stałą i współdzielić. Dla typowych formatów dostępne są gotowe formattery, np. ISO_LOCAL_DATE.
Powiązana dokumentacja