Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的单调递增时间?_Java_Time - Fatal编程技术网

Java中的单调递增时间?

Java中的单调递增时间?,java,time,Java,Time,在Java应用程序中,我希望能够在操作开始时获取时间戳,并能够定期检查操作运行了多长时间。问题是:我不想受到网络时间协议的影响,不想让时钟移动,不想让管理员改变时间,也不想受到任何可能突然调整一天时间的事情的影响。我想要一个单调递增的时间值。我认为这排除了java.util.Date、Time和Calendar JRE中是否存在单调递增时间戳的来源?您是否考虑过使用 它仅在计算两个事件之间的运行时间时才有意义。由于文档说明它与任何系统或墙时间无关,因此我相信它可以用于您的场景。有一个类可以做到这

在Java应用程序中,我希望能够在操作开始时获取时间戳,并能够定期检查操作运行了多长时间。问题是:我不想受到网络时间协议的影响,不想让时钟移动,不想让管理员改变时间,也不想受到任何可能突然调整一天时间的事情的影响。我想要一个单调递增的时间值。我认为这排除了java.util.Date、Time和Calendar

JRE中是否存在单调递增时间戳的来源?

您是否考虑过使用

它仅在计算两个事件之间的运行时间时才有意义。由于文档说明它与任何系统或墙时间无关,因此我相信它可以用于您的场景。

有一个类可以做到这一点。它被称为

它们没有年表或时区,仅由毫秒持续时间组成


您还可以将日期戳设置为格林威治时间,网络时间协议不应成为问题。

返回最精确的可用系统计时器的当前值,单位为纳秒。是的,这是事实,bat AFAIK nanoTime不受系统时间的影响,这是提问者所要求的。是的,尝试过。它工作起来很有魅力。System.currentTimeMillis()受重置系统时间的影响,但不受纳米时间的影响。我的粗心。来自JavaDoc:无法保证值的更改频率。这是值得关注的吗?@hhafez
nanoTime()
对于在虚拟机内运行的进程来说并不一定是单调的:。这个答案也是相关的:我考虑过JadoTime,但我认为当nanoTime可用时,它会被过度使用。