可能重复:
如何在应用程序运行之间本地检测用户的 iPhone 时钟提前?
有没有办法确定 iOS 中的实际时间和日期(不是设备的时间)
iOS 中有没有可以使用的时钟,用户无法更改
简短的
我正在使用基于自动更新订阅的应用程序。当应用程序收到来自 Apple 的最新收据时,它会将expires_date_ms
密钥存储在NSUserDefaults
. 在该日期后的 30 天,该应用程序会与 Apple 核对订阅是否仍然有效。该应用程序可以被视为离线应用程序,但它必须每 30 天连接一次互联网以检查订阅状态。这个时间比较将用于告诉用户他/她必须连接。
问题
我正在使用下面的代码将当前时间与expires_date_ms
:
NSTimeInterval expDateMS = [[productInfo objectForKey:@"expires_date_ms"] doubleValue];
NSTimeInterval currentDateMS = ([[NSDate date] timeIntervalSince1970] * 1000);
if (currentDateMS > expDateMS)
subExpired = YES;
这很好,效果很好,但据我所知,有一个可以利用的漏洞 - 如果用户将设备的时钟设置回一小时/月/十年,时间比较将变得不可靠,因为[NSDate date]
使用设备的当前时间(请如我错了请纠正我)。
问题
有没有办法以毫秒为单位检索与设备无关的时间?一种可以在不考虑设备时钟的情况下准确可靠地测量?