Date/Time Средний

Получайте временные метки с точностью до микросекунд или наносекунд.

✕ Java 8
// Millisecond precision only
long millis =
    System.currentTimeMillis();
// 1708012345678
✓ Java 9+
// Microsecond/nanosecond precision
Instant now = Instant.now();
// 2025-02-15T20:12:25.678901234Z
long nanos = now.getNano();
Заметили проблему в этом коде? Сообщите нам.
🎯

Высокая точность

Временные метки с точностью до микросекунд/наносекунд вместо миллисекунд.

📐

Типобезопасность

Instant несёт в себе свою точность — никаких неоднозначных значений long.

🌐

Основан на UTC

Instant всегда в UTC — никакой путаницы с часовыми поясами.

Старый подход
Миллисекунды
Современный подход
Наносекунды
Начиная с JDK
9
Сложность
Средний
Instant с точностью до наносекунд
Доступно

Широко доступен начиная с JDK 9 (сентябрь 2017)

Java 9 улучшила разрешение часов, и теперь Instant.now() на большинстве платформ обеспечивает точность до микросекунд (на некоторых — до наносекунд). Устаревший currentTimeMillis() предоставляет точность только до миллисекунд.