[英]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.