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 周期数有关。java.util.Date
它与使用纪元时间(自 1970 年以来的毫秒数)完全无关。
您可以自由比较两个不同的值System.nanoTime()
以获得非常准确的时间测量值(理论上最多 1 纳秒),但单独采用绝对值是没有用的。
此方法只能用于测量经过的时间,与系统或挂钟时间的任何其他概念无关。返回的值表示自某个固定但任意的原始时间以来的纳秒(可能在将来,因此值可能为负数)。在 Java 虚拟机实例中,此方法的所有调用都使用相同的来源;其他虚拟机实例可能使用不同的来源。
时间戳需要新的时间戳(毫秒)。如果你给它纳秒(new Timestamp(nanoseconds) ---> 1000 倍大),你将在未来获得 1000 次时间戳,无论这意味着什么。这是因为获得的日期是 2282 年