Java 8中新的Date Time API的一个特性应该是纳秒精度.但是,当我将当前日期时间打印到控制台时,就像这样
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("yyyy-MM-dd'T'HH:mm:ss,nnnnnnnnnZ");
System.out.println(OffsetDateTime.now().format(formatter));
Run Code Online (Sandbox Code Playgroud)
我只看到毫秒精度:2015-11-02T12:33:26,746000000 + 0100
操作系统似乎确实支持纳秒精度.当我通过终端打印当前日期时间
date -Ins
Run Code Online (Sandbox Code Playgroud)
我看到2015-11-02T12:33:26,746134417 + 0100
如何在Java中获得纳秒精度?我在Ubuntu 14.04 64位上运行Oracle Java 1.8.0_66
java函数系统.currentTimeMillis()显然返回自1970年1月1日以来的秒数.然而,根据wikipedia.org/wiki/Leap_second,自1972年以来已经有25个闰秒.这意味着自1970年1月1日以来的实际秒数比原始计算所暗示的多25个秒.是系统.currentTimeMillis()做天真的计算并忽略闰秒?