Перепишите время UNIX с точностью до наносекунды

У меня есть время Unix, так как epoc в миллисекундах, например: 1505913038295

Мне нужно разделить это на две вещи. Так что я могу использовать метод класса Java Instant.

Instant ofEpochSecond(long epochSecond, long nanoAdjustment) 
  1. Секунды с начала эпохи (это я могу сделать) длинные секунды Since1970 = milisecondsSince1970 / 1000;

  2. Это мне нужна помощь. Мне нужно взять остаток в миллисекундах, скажем, 295 (1-й вопрос: как мне получить остаток), затем преобразовать его в наносекунды, затем получить текущий System.nanoTime() и добавить его в нано-ramainder.

Ср 20 сентября 2017 13:21:33 + [остаток мили в нано + ноно сейчас] [секунды после эпок] + [милисекунды с эпок в нано + ноно]

Тогда, надеюсь, я могу вызвать Instant.ofEpochSecond, что-то вроде этого.

Instant convertedTimestamp = Instant.ofEpochSecond(secondsSince1970, remaindingNanoTime % 1000000000L);

Я надеюсь, что это имеет смысл.

1 ответ

Если я правильно понимаю, что вы хотите, попробуйте что-то вроде этого:

Instant.ofEpochMilli( millis ).plusNanos( System.nanoTi‌​‌​me() % 1000_000L);
Другие вопросы по тегам