iOS 客户端与服务端做时间同步
2024-09-05 18:15:56
需求
我们做客户端的时候,有时会需要对客户端与服务器的时间进行同步,比如抢购活动、倒计时等。这时我们要考虑如何准备地与服务器的时间进行同步,同时防止用户本地的时间有误差时导致的问题。
分析
描述
为了实现以上需求,我们需要:
获取服务器某一时刻
A
的时间;记录获取到时刻
A
时的本地时间B
;需要用到时间时,获取当前本地时间
C
,当C - B
作为时间间隔D
,则A + D
则是当前服务器的时间。
实现
从上面的步骤,我们可以得到,要消除用户修改时间导致的影响,必须保证
B
和C
与系统时间无关;iOS
中正好有提供这样两个接口:获取设备当前时间
Now
,该值受系统时间影响,用户如果修改时间,值也会随着变化;获取设备上次重启的时间
BootTime
,该值受系统时间影响,用户如果修改时间,值也会随着变化;;
由上面
iOS
提供的两个接口,我们可以获取本地时间B
、C
:设备自上次重启后运行的时间(BootTime - Now
),该值与系统时间无关;
代码实现
获取当前 Unix Time:
|
|
获取设备上次重启的 Unix Time:
|
|
时间校准:
|
|
参考
最新文章
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(58)-DAL层重构
- java中判断字符串是否为数字的方法
- JavaScript POST 请求如何跨域
- hdu4914 Linear recursive sequence
- ThinkAndroid是简洁,快速的进行Android应用程序的框架
- Lombok(1.14.8) - @Getter, @Setter, @ToString, @EqualsAndHashCode &; @Data
- setTimeout的作用以及setTimeout延时0毫秒的作用
- Cortex-A9 UART
- HTML中的javascript交互
- 读JVM相关的一些笔记
- wxpy使用
- centos7 安装 redis-4.0.9
- python 字符串常用操作方法
- SSH整合Maven教程
- 1788:Pell数列
- Linux设备驱动剖析之SPI(四)
- 《DSP using MATLAB》Problem 2.8
- vue项目 webpack打包后,图片路径是绝对路径
- 如何停止你的Streaming Application
- 【笔记】IntelliJ IDEA配置Hibernate