Перепишите время UNIX с точностью до наносекунды
У меня есть время Unix, так как epoc в миллисекундах, например: 1505913038295
Мне нужно разделить это на две вещи. Так что я могу использовать метод класса Java Instant.
Instant ofEpochSecond(long epochSecond, long nanoAdjustment)
Секунды с начала эпохи (это я могу сделать) длинные секунды Since1970 = milisecondsSince1970 / 1000;
Это мне нужна помощь. Мне нужно взять остаток в миллисекундах, скажем, 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.nanoTime() % 1000_000L);