[TOC]
设备开机后的时间
CACurrentMediaTime()
设备从开机时起到现在的时间,设备重启会重置,单位为秒
[[NSProcessInfo processInfo] systemUptime]
与CACurrentMediaTime()
等价
相对某个参考系的时间
Date().timeIntervalSince1970
1970年1月1日凌晨为参考系,到现在的时间,一般用于表示时间戳
Date().timeIntervalSinceReferenceDate
世界时间(UTC)2001年1月1日凌晨到现在经过的时间,单位为秒
CFAbsoluteTimeGetCurrent()
与Date().timeIntervalSinceReferenceDate
等价
当用户手动改变了设备上的系统时间后,基于系统时钟的上述方法返回的结果也会一同改变
print(CACurrentMediaTime()) // 设备刚重启
print(Date().timeIntervalSince1970)
print(Date().timeIntervalSinceReferenceDate)
print(CFAbsoluteTimeGetCurrent())
image.png
必要时,从服务器上获取时间
如果App本身对获取的时间精度要求很高,还是直接通过网络从服务器获取时间戳会比较保险。
当网络可用时,直接从服务器获取;
网络不可用时,且设备没有被重启过,可以根据上一次获取服务器时间戳的时刻到此时的时间差来推算出正确的时间
网友评论