โ— Shell
clean mode source โ†—

Date formatting

Code Comparison

// Not thread-safe!
SimpleDateFormat sdf =
    new SimpleDateFormat("yyyy-MM-dd");
String formatted = sdf.format(date);
// Must synchronize for concurrent use
DateTimeFormatter fmt =
    DateTimeFormatter.ofPattern(
        "uuuu-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

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.

Related Documentation

Proof