Date/Time Iniciante

Calcule diferenças de tempo com Duration e Period, tipos seguros e precisos.

✕ 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);
Viu um problema com este código? Nos avise.
🎯

Tipagem segura

Duration para tempo, Period para datas — sem confusão.

🛡️

Cálculo correto

Lida com horário de verão, anos bissextos e segundos intercalares.

📖

Legível

ChronoUnit.DAYS.between() se lê de forma natural.

Abordagem Antiga
Cálculo com milissegundos
Abordagem Moderna
Duration / Period
Desde o JDK
8
Dificuldade
Iniciante
Duration e Period
Disponível

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

Duration é para quantidades baseadas em tempo (horas, minutos, segundos). Period é para quantidades baseadas em datas (anos, meses, dias). ChronoUnit.between() serve para diferenças simples. Todos tratam casos extremos corretamente.

Compartilhar 𝕏 🦋 in