比较在两台不同机器上调用 System.nanoTime() 产生的两个值是否正确?我会说不,因为 System.nanoTime() 通过使用依赖于处理器的时间戳计数器 (TSC)返回相对于某个任意点时间的纳秒精度时间。
如果我是对的,有没有办法(在 Java 中)在两台不同的机器上捕获一个瞬间,并以至少微秒精度甚至纳米级精度(安全地)比较这些值?
System.currentTimeMillis() 不是解决方案,因为它没有返回线性增加的时间戳数。用户或NTP等服务可以随时更改系统时钟,时间会前后跳跃。