Date/Time Iniciante

Use tipos de data/hora imutáveis e claros em vez de Date e Calendar.

✕ Pre-Java 8
// Mutable, confusing, zero-indexed months
Calendar cal = Calendar.getInstance();
cal.set(2025, 0, 15); // January = 0!
Date date = cal.getTime();
// not thread-safe
✓ Java 8+
LocalDate date = LocalDate.of(
    2025, Month.JANUARY, 15);
LocalTime time = LocalTime.of(14, 30);
Instant now = Instant.now();
// immutable, thread-safe
Viu um problema com este código? Nos avise.
🔒

Imutável

Valores de data/hora não podem ser modificados acidentalmente.

📖

API clara

Month.JANUARY, não 0. DayOfWeek.MONDAY, não 2.

🛡️

Thread-safe

Sem necessidade de sincronização — compartilhe livremente entre threads.

Abordagem Antiga
Date + Calendar
Abordagem Moderna
java.time.*
Desde o JDK
8
Dificuldade
Iniciante
Fundamentos da API java.time
Disponível

Amplamente disponível desde o JDK 8 (março de 2014)

java.time fornece LocalDate, LocalTime, LocalDateTime, Instant, ZonedDateTime — todos imutáveis e thread-safe. Os meses são indexados a partir de 1. Sem mais confusão com Calendar.JANUARY = 0.

Compartilhar 𝕏 🦋 in