以纳秒精度重写UNIX时间

时间:2017-09-20 13:34:23

标签: java datetime java-time java.time.instant

我有一个自从epoc以毫秒为单位的unix时间,例如:1505913038295

我需要把它分成两件事。所以我可以使用Java Instant类方法。

Instant ofEpochSecond(long epochSecond, long nanoAdjustment) 
  1. 自纪元以来的秒数(我可以做) long secondsSince1970 = milisecondsSince1970 / 1000;

  2. 我需要帮助。我需要采用毫秒余量,比如说295,(第一个问题:如何获得余数)然后将其转换为纳秒,然后获取当前的System.nanoTime()并将其添加到nano ramainder。

    < / LI>

    Wed Sep 20 2017 13:21:33 + [nano mili in nano + nono now] [epoc以来的秒数] + [自纳米+诺诺的epoc以来的毫秒数]

    然后希望我可以调用Instant.ofEpochSecond,就像这样。

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

    我希望这样做。

1 个答案:

答案 0 :(得分:0)

如果我理解你想要的东西,试试这样的事情:

Instant.ofEpochMilli( millis ).plusNanos( System.nanoTi‌​‌​me() % 1000_000L);