我需要尽可能少的垃圾收集(GC),非常精确和准确的时间,理想情况下每天1次.System.currentTimeMillis()不够准确,System.nanoTime()不是准确的时间来源.唯一会给我我想要的东西java.util.Date.getTime()但是它不是一个静态方法所以Date每次我需要精确和准确的时间时我必须创建一个新对象,这会导致更频繁地触发GC.
有谁知道Date课程如何获得准确和精确的时间?我希望采用Date的方法并定制它以最小化对象创建.要总结我的问题,请参阅以下内容:
long nanosSinceEpoch;
nanosSinceEpoch = System.currentTimeMillis(); // Not precise
nanosSinceEpoch = System.nanoTime(); // Not accurate
nanosSinceEpoch = new Date().getTime(); // Too many objects
Run Code Online (Sandbox Code Playgroud)
我不确定为什么我认为System.currentTimeMillis()和new Date().getTime()不同但事实证明它们是相同的.但遗憾的是,这并没有解决我的问题.
此外,getNano()从java.time.Instant似乎只有毫秒分辨率.