繁体   English   中英

nanoTime的System.out不正确?

[英]System.out of nanoTime is incorrect?

我正在做private Timestamp timestamp = new Timestamp(System.nanoTime()); 在创建对象时在我的一个实体中。

如果我system.out时间戳,我得到的价值就像;

2282-08-24 11:25:00.506
2286-04-16 01:47:35.882

这有什么不对?

System.currentTimeMillis()给出了正确的日期,但我需要更高的准确性。 这可能有什么问题?

System.nanoTime()是一种完全抽象的测量时间的方法,它与计算机启动以来的CPU周期数有关。 它与使用纪元时间(自1970年以来的毫秒数)的java.util.Date完全无关。

您可以自由地比较System.nanoTime()两个不同值以获得非常准确的时间测量(理论上高达1纳秒),但单独使用的绝对值是无用的。

此方法只能用于测量经过的时间,与系统或挂钟时间的任何其他概念无关。 返回的值表示纳秒,因为某些固定但任意的原始时间(可能在未来,因此值可能为负)。 在Java虚拟机的实例中,此方法的所有调用都使用相同的原点; 其他虚拟机实例可能使用不同的来源。

文件

时间戳需要新的时间戳(毫秒)。 如果你给它纳秒(新的时间戳(纳秒)---> 1000倍)你将来获得1000次时间戳,无论这意味着什么。 这是因为获得的日期是在2282年

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM