Когда нужно показать пользователю, сколько осталось до события это можно сделать на java.time, учитывая часовой пояс.
Шаг 1 — задаём целевую дату/время:
import java.time.*;
ZonedDateTime target = ZonedDateTime.of(
2025, 12, 31, 23, 59, 0, 0, ZoneId.systemDefault() // год, мес, день, часы, минуты
);
Шаг 2 — считаем разницу:
Duration d = Duration.between(ZonedDateTime.now(), target);
if (d.isNegative()) { System.out.println("Событие уже прошло"); return; }
Шаг 3 — разбиваем на дни/часы/минуты и выводим:
long days = d.toDays();
long hours = d.minusDays(days).toHours();
long mins = d.minusDays(days).minusHours(hours).toMinutes();
System.out.println("Осталось: " + days + " д " + hours + " ч " + mins + " м");
🔥 Работает для любой даты/зоны. Можно вынести в метод и использовать в таймерах, баннерах и уведомлениях.
👉 Java Ready | #практика