How to get time delta independently from system time?
我正在用Java编写一个简单的计时器。 它有"开始"和"停止"按钮,以及显示自计时器启动以来经过了多长时间的文本视图。
它是通过设置
问题是如果我在计时器运行时更改系统时间,整个测量将失败。 例如,如果我将时间设定为一个月,则计时器显示负值,因为
那么,我如何计算与系统时间无关的时间增量? 使这个解决方案跨平台也很棒。
使用:
1 |
这应该做到这一点。 它不会考虑系统时间,只能用于测量经过的时间。 这是你想要的。 您需要除以100万才能获得经过的毫秒数。 另见Javadocs。
1 |
来自Javadoc:
This method can only be used to measure elapsed time and is not related to any other notion of system or wall-clock time.
使用时间Web服务。 例如这个或这个或这个
你可以像NTP一样安装恶魔,任何方向的系统时间跳跃都有很多问题,并且可能导致很多其他问题。
修改系统时间是一项特权操作,因此有人会这样做,他们会更好地了解。
以下是关于同一案例的13岁的错误:http://bugs.sun.com/view_bug.do?bad_id = 4290274
HTH