Date formatting
Format dates with thread-safe, immutable DateTimeFormatter.
Code Comparison
✕ 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(
"yyyy-MM-dd");
String formatted =
LocalDate.now().format(fmt);
// Thread-safe, immutable
Why the modern way wins
Thread-safe
Share formatters across threads without synchronization.
Built-in formats
ISO_LOCAL_DATE, ISO_INSTANT, etc. for standard formats.
Immutable
Store as static final constants safely.
Old Approach
SimpleDateFormat
Modern Approach
DateTimeFormatter
Since JDK
8
Difficulty
beginner
JDK Support
Date formatting
Available
Widely available since JDK 8 (March 2014)
How it works
DateTimeFormatter is immutable and thread-safe, unlike SimpleDateFormat. It can be stored as a constant and shared. Predefined formatters like ISO_LOCAL_DATE are available for common formats.