在iOS中,我需要知道实际时间(UTC),而不是设备的时间。换句话说,用户不应该篡改时间或日期。
任何需要网络连接的东西都不好(因此无法访问时间服务器)。
AFAIK,有两种理论方法可以实现这一目标:
问题是iOS中的任何API都不会公开此信息。
还有其他办法吗?
答案 0 :(得分:2)
您可能找到的大多数解决方案(包括从CoreLocation获取GPS数据以访问时间信息)都存在缺陷,因为它们取决于实际设备来访问时间。您将需要连接到时间服务器(我建议检查NTP服务器)。我正在查看核心电话框架,找不到任何可以提供网络时间的东西。您可能希望填写错误报告并请求Apple扩展其中一个类以包含时间。
答案 1 :(得分:1)
您可以查看NSTimeZone中的secondsFromGMTForDate:和secondsFromGMT。如果GMT偏移在设备更改时间增加/减少,这些提供了一种方法来将您的时间戳更正为GMT(并可能转换为UTC)。
答案 2 :(得分:0)
您无法获取原始GPS数据和locationManager:didUpdateLocations
中CLLocation的时间戳属性:使用系统时钟设置