Fundamentos da API java.time
Use tipos de data/hora imutáveis e claros em vez de Date e Calendar.
Comparação de Código
✕ 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.
Por que a forma moderna ganha
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
Suporte JDK
Fundamentos da API java.time
Disponível
Amplamente disponível desde o JDK 8 (março de 2014)
Como funciona
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.
Documentação Relacionada