在iOS中,我需要知道的实际时间(UTC),而不是设备的时间。 换句话说,它不应该是可能的用户与时间或日期篡改。
任何需要网络连接不好(所以访问时间服务器不是一个选项)。
据我所知,有实现这一目标的2种理论方法:
- 从GPS卫星信号使用时间戳
- 从运营商获取当前时间
问题是,这个信息不是由任何的iOS API暴露。
有另一种方式?
在iOS中,我需要知道的实际时间(UTC),而不是设备的时间。 换句话说,它不应该是可能的用户与时间或日期篡改。
任何需要网络连接不好(所以访问时间服务器不是一个选项)。
据我所知,有实现这一目标的2种理论方法:
问题是,这个信息不是由任何的iOS API暴露。
有另一种方式?
因为他们是根据实际的设备上访问时间时间你可能找到(包括CoreLocation获取GPS数据访问时间信息)大多数解决方案都存在缺陷。 您需要连接到服务器的时间(我建议检查NTP服务器)。 我一直在寻找的核心电话框架,但没有找到任何会提供网络时间。 您可能需要填写bug报告,并要求苹果扩大的一个类,包括时间。
你可以看看secondsFromGMTForDate:和secondsFromGMT在NSTimeZone。 如果GMT偏移量增大/减小时,该设备的时间改变,这提供了一种方法来纠正你时间戳GMT(也可能转换为UTC)。
你不能将原始GPS数据,并在CLLocation的timestamp属性locationManager:didUpdateLocations
:设置与系统时钟