Duration y Period
Calcula diferencias de tiempo con Duration y Period con tipado seguro.
Comparación de Código
✕ Pre-Java 8
// How many days between two dates?
long diff = date2.getTime()
- date1.getTime();
long days = diff
/ (1000 * 60 * 60 * 24);
// ignores DST, leap seconds
✓ Java 8+
long days = ChronoUnit.DAYS
.between(date1, date2);
Period period = Period.between(
date1, date2);
Duration elapsed = Duration.between(
time1, time2);
¿Ves un problema con este código? Cuéntanos.
Por qué gana la forma moderna
Tipado seguro
Duration para tiempo, Period para fechas — sin confusión.
Cálculo correcto
Maneja transiciones de horario de verano, años bisiestos y segundos intercalares.
Legible
ChronoUnit.DAYS.between() se lee como lenguaje natural.
Enfoque Antiguo
Aritmética con milisegundos
Enfoque Moderno
Duration / Period
Desde JDK
8
Dificultad
Principiante
Soporte JDK
Duration y Period
Disponible
Ampliamente disponible desde JDK 8 (marzo de 2014)
Cómo funciona
Duration es para cantidades basadas en tiempo (horas, minutos, segundos). Period es para cantidades basadas en fechas (años, meses, días). ChronoUnit.between() para diferencias simples. Todos manejan correctamente los casos límite.
Documentación Relacionada