当前位置:  开发笔记 > 编程语言 > 正文

System.currentTimeMillis()(Java)错误的时间

如何解决《System.currentTimeMillis()(Java)错误的时间》经验,为你挑选了1个好方法。

我做了一个小程序来测试System.currentTimeMillis().我有一个奇怪的结果.这是我的日志:

1    26-12-09 20:48:21 - [Log] lTime = 1261860501009
2    26-12-09 20:48:21 - [Log] lTime = 1261860501012
3    26-12-09 20:48:21 - [Log] lTime = 1261864899078
4    26-12-09 20:48:21 - [Log] lTime = 1261860501033
5    26-12-09 20:48:21 - [Log] lTime = 1261860501069

如您所见,第3行存在问题.时间磨损是错误的.它应该在1261860501012和1261860501033之间.大约有73毫秒的误差.

有人知道问题来自哪里?

非常感谢

bill0ute

编辑:操作系统:Debian 4.0,Java:6_17.

我的代码:

while (true) 
    setLog (System.currentTimeMillis ());

编辑:程序在基于Linux的VPS上运行



1> Pool..:

System.currentTimeMillis()取决于系统时钟.看起来系统时钟已被外部程序微调,对于可能是NTP的 Linux .

请注意,您不应该System.currentTimeMillis()用来衡量经过的时间.它最好使用,System.nanoTime()但即使这不保证是单调的.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有