如何从系统时间独立获得时间增量?

And*_*ndy 3 java time

我正在用Java编写一个简单的计时器.它有"开始"和"停止"按钮,以及显示自计时器启动以来经过了多长时间的文本视图.

它是通过System.currentTimeMillis()在循环中每秒设置初始时间和更新当前值来实现的.

问题是如果我在计时器运行时更​​改系统时间,整个测量将失败.例如,如果我将时间设置为一个月,则计时器显示负值,因为currentTimeMillis()现在返回的值小于初始值.

那么,我如何计算与系统时间无关的时间增量?使这个解决方案跨平台也很棒.

Tho*_*ler 10

使用:

System.nanoTime()
Run Code Online (Sandbox Code Playgroud)

这应该做到这一点.它不会考虑系统时间,只能用于测量经过的时间.这是你想要的.您需要除以100万才能获得经过的毫秒数.另见Javadocs.