Как прочитать существующую метку времени? - PullRequest
0 голосов
/ 18 февраля 2020

Я работаю над чужим кодом и получаю JSON -объект с существующей меткой времени:

"lastModification": 1582013867500

Что ж, я изо всех сил пытаюсь это прочитать. Я проверил документы TimeStamp, но все еще не знаю, как это прочитать. Кто-нибудь может помочь?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 18 февраля 2020

Эта отметка времени - это момент времени с 1 января 1970 года, представленный в миллисекундах.

Вы можете сделать его читаемым, используя немного java.time, например:

public static void main(String[] args) {
    long millis = 1582013867500L;
    Instant instant = Instant.ofEpochMilli(millis);
    ZonedDateTime zdt = ZonedDateTime.ofInstant(instant, ZoneOffset.UTC);
    System.out.println(zdt.format(DateTimeFormatter.ISO_ZONED_DATE_TIME));
}

Выход

2020-02-18T08:17:47.5Z
2 голосов
/ 18 февраля 2020

Unix время эпохи или POSIX или Unix отметка времени - количество секунд, прошедших с полуночного пролепти c Всемирное координированное время (UT C) от 1 января 1970 года.

Ваша текущая отметка времени записывается в миллисекундах.

Вы можете использовать инструменты преобразования для чтения в режиме онлайн, например, https://www.epochconverter.com/.

Java Библиотека времени поддерживает преобразования в секундах и миллисекундах:

LocalDateTime.ofInstant(Instant.ofEpochMilli(lastModification),
                        TimeZone.getDefault().toZoneId());

// OR using ZoneId

LocalDateTime.ofInstant(Instant.ofEpochMilli(lastModification),
                        ZoneId.systemDefault());
LocalDateTime.ofInstant(Instant.ofEpochSecond(lastModification),
                        ZoneId.systemDefault());
...