как конвертировать микросекунды эпохи Unix в метку времени Java - PullRequest
6 голосов
/ 12 июля 2019

Время эпохи в микросекундах: 1529948813696000

как преобразовать это в метку времени Java.

Я могу преобразовать время эпохи в миллисекундах, используя этот метод

Instant instant = Instant.ofEpochMilli(Long.parseLong("1529957592000"));
Date parsedDate = dateFormat.parse(instant.atZone(ZoneId.of("America/Chicago")).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS")).toString())

Нужна помощь в преобразовании времени эпохи в микросекундах?

1 Ответ

7 голосов
/ 12 июля 2019

Хотя класс Instant не имеет метода ofEpochNano(long), он имеет перегрузку ofEpochSecond(long, long), которая принимает смещение наносекунды вместе с секундами эпохи.

С небольшой математикой вы можете просто преобразовать свои микросекунды эпохи в секунды плюс смещение и создать свой Instant, используя его, например, так:

long epochMicroSeconds = 1_529_948_813_696_123L;
long epochSeconds = epochMicroSeconds / 1_000_000L;
long nanoOffset = ( epochMicroSeconds % 1_000_000L ) * 1_000L ;
Instant instant = Instant.ofEpochSecond( epochSeconds, nanoOffset ) ;

См. Этот код, запущенный в режиме реального времени на IdeOne.com .

instant.toString (): 2018-06-25T17: 46: 53,696123Z

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...