Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

System.currentTimeMillis() uptimeMillis elapsedRealtime 区别

$
0
0

System.currentTimeMillis()  系统时间,也就是日期时间,可以被系统设置修改,然后值就会发生跳变。

uptimeMillis 自开机后,经过的时间,不包括深度睡眠的时间

elapsedRealtime自开机后,经过的时间,包括深度睡眠的时间


所以System.currentTimeMillis()不适合计算时间间隔,eg,

now = System.currentTimeMillis()

//do something...

duration = System.currentTimeMillis() -now;


如果在do something的时候,改变了系统时间,那么 获取duration就不准了。通常在比较小的时间里,(毫秒级,秒级)一般不会有什么问题,系统时间可能不会改变。但是如果时间很长的话,那就保证不了了


uptimeMillis由于不计算睡眠时间,所以非常适合做一些特殊的时间间隔计算

elapsedRealtime 包括睡眠时间,适用于任何情况下的时间间隔计算

作者:wutianyin222 发表于2013-4-26 13:31:38 原文链接
阅读:23 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>