CurrentTimeMillis有什么变化吗?

时间:2011-11-08 11:18:41

标签: java

当System.currentTimeMillis发生变化时,可能的原因是什么?

说currentTimeMillis仅在2分钟后改变了1分钟和2分钟。与节日相关?

一个可能的原因是时间被同步到正确的时间,另一个可能的原因是什么?

2 个答案:

答案 0 :(得分:0)

System.currentTimeMillis(),根据其文档,返回当前时间与1970年1月1日午夜时间之间的差异(以毫秒为单位)。显然它正在快速变化所有时间。需要注意的是,它指的是挂钟,可以随时调整!

也就是说,如果有人或某事(可能是自动NTP同步器)只是调整计算机的时钟或日期,它会因为daylight saving time 而跳过一小时。如果您需要测量某些内容需要多长时间,则应使用计时器,例如System.nanoTime(),保证单调变化,而不是时钟(假定保证指代某个固定点)。

答案 1 :(得分:0)

我将开始猜测 - 主要是我看到两个可能的原因:

  • 你自己编写自1970年1月1日00:00UTC以来的毫秒转换,并且犯了一个错误(我们需要代码)
  • 实际上返回值超过3600000时会出现这种情况(只有在更改系统时钟时才会发生此类跳转,或者您可能使用NTP更新时间)