Basi dell'API java.time
Usa tipi di data/ora immutabili e chiari invece di Date e Calendar.
Confronto Codice
✕ 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
Vedi un problema con questo codice? Faccelo sapere.
Perché vince l'approccio moderno
Immutabile
I valori di data/ora non possono essere modificati accidentalmente.
API chiara
Month.JANUARY, non 0. DayOfWeek.MONDAY, non 2.
Thread-safe
Nessuna sincronizzazione necessaria — condividi liberamente tra i thread.
Approccio Vecchio
Date + Calendar
Approccio Moderno
java.time.*
Dal JDK
8
Difficoltà
Principiante
Supporto JDK
Basi dell'API java.time
Disponibile
Ampiamente disponibile dal JDK 8 (marzo 2014)
Come funziona
java.time fornisce LocalDate, LocalTime, LocalDateTime, Instant, ZonedDateTime — tutti immutabili e thread-safe. I mesi sono indicizzati a partire da 1. Niente più confusione con Calendar.JANUARY = 0.
Documentazione Correlata