Fundamentos de la API java.time
Usa tipos de fecha/hora inmutables y claros en lugar de Date y Calendar.
Comparación 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
¿Ves un problema con este código? Cuéntanos.
Por qué gana la forma moderna
Inmutable
Los valores de fecha/hora no se pueden modificar accidentalmente.
API clara
Month.JANUARY, no 0. DayOfWeek.MONDAY, no 2.
Seguro para hilos
Sin necesidad de sincronización — se comparte libremente entre hilos.
Enfoque Antiguo
Date + Calendar
Enfoque Moderno
java.time.*
Desde JDK
8
Dificultad
Principiante
Soporte JDK
Fundamentos de la API java.time
Disponible
Ampliamente disponible desde JDK 8 (marzo de 2014)
Cómo funciona
java.time proporciona LocalDate, LocalTime, LocalDateTime, Instant, ZonedDateTime — todos inmutables y seguros para hilos. Los meses están indexados desde 1. No más confusión con Calendar.JANUARY = 0.
Documentación Relacionada