关闭

程序自定义时钟计算实际时间

标签: javatimestamp多线程线程
200人阅读 评论(0) 收藏 举报
分类:

项目有这样一个需求:

需要知道某个动作发生的实际时间(注意是实际时间,不受修改系统时间的影响)。


ps:曾经使用线程去计算,定义一个计数器,让线程每隔1000ms+1。开始没问题,第二天发现计算出来的时间和实际时间相差很大,估计是因为线程在某些时候睡眠了(如果

有人知道确切答案麻烦告诉我一声,感谢。)


实现:

主要利用了SystemClock.elapsedRealtime()这个函数。

谷歌官方对这个函数的解析:


简单来说就是能获取到从手机启动到现在的时间戳,包括你线程是否睡眠(ps这个是不是能说明我之前的实现方法不对?)

1、在登录界面获取一个服务器的timestamp ,这个时间是标准的服务器时间。

2、记录下SystemClock.elapsedRealtime()的值 startTime。

3、在需要提交数据的地方,再此获取SystemClock.elapsedRealtime()的值endTime。


则现在的时间realTime =  timestamp+(endTime-startTime) 。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8503次
    • 积分:267
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:10篇
    • 译文:0篇
    • 评论:0条
    文章分类