Instant
Точный момент времени на временной шкале UTC — для логов, меток времени и замеров.
Доступно с: Java 8
Синтаксис
public final class Instant implements Temporal, Comparable<Instant>Примеры
Текущий момент — вывод меняется при каждом запуске:
void main() {
Instant now = Instant.now();
IO.println(now);
IO.println(now.getEpochSecond() > 0);
}Результат:
2026-10-04T06:22:33.382291100Z
trueМомент из Unix-времени и разница между моментами:
void main() {
Instant start = Instant.ofEpochSecond(1_700_000_000);
Instant end = start.plus(Duration.ofMinutes(90));
IO.println(start);
IO.println(Duration.between(start, end).toMinutes());
IO.println(start.atZone(ZoneId.of("Europe/Berlin")).toLocalTime());
}Результат:
2023-11-14T22:13:20Z
90
23:13:20Примечания
Instant всегда в UTC (буква Z в выводе) и не зависит от часового пояса компьютера. Чтобы показать момент человеку, переведите его в пояс: instant.atZone(zone). Unix-время в миллисекундах — Instant.ofEpochMilli() и toEpochMilli().
См. также
- ZonedDateTime — Дата и время в конкретном часовом поясе — с учётом летнего времени.
- Duration — Промежуток времени в секундах и наносекундах — часы, минуты, секунды.
- LocalDateTime — Дата и время без часового пояса — например, время встречи в календаре.
Вопросы и ответы по теме
В учебнике
- Даты и время — Пакет java.time — LocalDate, LocalTime, LocalDateTime, арифметика дат, Period, Duration, ChronoUnit, часовые пояса и Instant.