1. 情景1:手环根据手机显示时间,无时区字段
- 以印度时区和北京时区为例:
地区 | 时区 | 各地当前时间 |
---|---|---|
印度 | 东五区 | 2018.05.08 09:12 |
中国 | 东8区 | 2018.05.08 11:42 |
虽说印度与中国相差3个时区,但是他们相差的时间为 2:30 两个小时30分钟,百度可查
从北京到印度首都新德里坐飞机大概 8 个小时,若一个戴着运动手环(运动手环显示的时间为手机时间),手机的时间为北京时区 东八区9点,坐飞机的过程中手环进入睡眠,手环开始产生睡眠数据,直到东八区17点的时候到了印度,睡眠结束,假设产生了100条睡眠数据,时间是东八区9点到东八区17点的,同步上传到服务器。
后来用户到了印度,手机设置了印度的时区,东八区的17点,在印度会显示14:30,同步手环的时候手环时间会被设置为14.30。
那么手环里面记录的是17点的数据,对没有时区概念的手环来说17点是未来的时间。
用户是运动手环再次进入睡眠,等到印度时区东5区的17点的时候 退出睡眠,那么产生的睡眠数据传数据以印度时区上传到服务器,
为了解决这个时区的问题,在APP显示数据以手机上面的时间为主,注意手机时区的时间与本地时间的转换。
例如:本地数据库保存的是东八区的8点,当手机时区切换为印度时区的时候,展示数据的时候必须把本地数据库的时间转为印度时区的时间,显示到界面。
2. 说明:
说明:全球的时间戳一致,不同时区地方的时间戳是一样的。所以如果本地数据保存的数据是时间戳,根据手机的时区时间,把时间戳转换为手机时间,展示数据列表,服务器保存的是日期,以及时区,若服务器时区与手机时区不一致,则需要转换为本地时区,使数据一致
网友评论