Date/Time Początkujący

Obliczaj różnice czasu z bezpiecznym typowaniem za pomocą Duration i Period.

✕ 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);
Widzisz problem z tym kodem? Daj nam znać.
🎯

Bezpieczne typowanie

Duration dla czasu, Period dla dat — bez pomyłek.

🛡️

Poprawna arytmetyka

Obsługuje przejścia czasu letniego, lata przestępne i sekundy przestępne.

📖

Czytelność

ChronoUnit.DAYS.between() czyta się jak naturalny język.

Stare podejście
Arytmetyka na milisekundach
Nowoczesne podejście
Duration / Period
Od JDK
8
Poziom trudności
Początkujący
Duration i Period
Dostępne

Szeroko dostępne od JDK 8 (marzec 2014)

Duration służy do ilości czasu (godziny, minuty, sekundy). Period służy do ilości dat (lata, miesiące, dni). ChronoUnit.between() do prostych różnic. Wszystkie typy poprawnie obsługują przypadki brzegowe.