Получить текущую временную метку в Java

В Java временные метки представлены следующими классами:

  • java.time.Instant с Java 8
  • java.sql.Timestamp до Java 7

1. Получите текущую временную метку с помощью Instant

Instant представляет собой уникальную точку на временной шкале и в первую очередь используется для записи временных меток событий в приложении. Это фактическая точка времени, выраженная с использованием UTC – универсальной шкалы времени.

Instant instant = Instant.now();System.out.println(instant); //2022-02-15T08:06:21.410588500Z

2. java.sql.Timestamp(Java 7 или более ранняя версия)

Этот устаревший класс имеет 2 метода для получения текущей временной метки.

 Метка времени timestamp1 = new Timestamp(System.currentTimeMillis());Дата дата = новая Дата();Метка времени timestamp2 = new Timestamp(date.getTime());System.out.println(timestamp1); //2022-02-15 13:55:56.18System.out.println(timestamp2); //2022-02-15 13:55:56.18

3. Мгновенное время против ZonedDateTime

На высоком уровне классы Instant и ZonedDateTime кажутся похожими, но это не так.

  • ZonedDateTime — это реальный момент времени, но в определенном часовом поясе.
  • Мгновенье — это момент времени в формате UTC.

Значение Instant.now() будет абсолютно одинаковым во всех частях слов одновременно, в то время как значение ZonedDateTime.now() будет скорректировано в соответствии со значением часового пояса, связанным с экземпляром,

Как правило, рассмотрите возможность использования класса Instant для хранения значений временных меток в базе данных и передачи между различными приложениями. И используйте экземпляр ZonedDateTime для отображения информации пользователям в их конкретных часовых поясах.

Исходный код Скачать

Прокрутить вверх