您的位置:首页 > 其它

设备端时间及与手机交互时间戳相关问题

2016-09-20 17:32 239 查看
gettimeofday、clock_get、time 获取到的时间戳都是获取从1970年1月1日到现在所经过的秒数(时间戳),而这个现在的时间又是什么时间呢,我默认是linux系统里的一个变量a

默认如果一个设备没实时时钟的话,那么一开机它的默认时间就是1970-1-1,这时一般用ntpdate去矫正时间,它会根据不同时区配置文件去自动帮你从服务器里矫正时间(矫正的时间写到a),但不同时区的配置文件很难找齐,因此我们是默认矫正utc的时间,然后在自己把时区加上去,然后在通过clock_settime将矫正的时间再次写到系统中即写到变量a中

好那么此时在通过gettimeofday、clock_get、time 这几个函数获得的时间戳就已经是加了时区的了,所以手机端获取到的时间戳都是已经加了时区的,不用自己在另外加,即调用函数将时间戳转为标准时间时时区选为0

还有一种情况就是无论是手机还是设备-->linux系统,都会那么个函数会根据一个指定的具体时间来生成一个时间戳,那么这个时间戳是从什么时候开始是的呢,没错同样的从1970年1月1号开始的,跟时区无关,调用函数将时间戳转为标准时间时时区选为0

无论怎样,时间戳在两台设备之间交互反正就遵循一个原则,现在有两台设备,设备1给设备2发时间戳,设备2直接解析成UTC时间,即从1970-1-1到现在的时间即可,不用在加什么时区,因为设备1在生成这个时间戳的时候也是计算从1970-1-1到现在的时间,在整个时区反而是错的,设备自身在获取到时间戳在转为标准时间时也不用加时区跟上面同理,时间戳只有在一开始要矫正时间的时候才用到(这个设备无论是arm设备还是手机)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: