如何从Apple Server获取日期和时间?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我正在开发一个应用程序,只能在一天中的某个时间使用。我无法获得本地设备时间,因为用户可以轻松地更改设备时间,从而允许在一天中的任何时间访问应用程序。

有没有办法从苹果服务器获得当前的日期和时间,还有其他方法吗?

提问于
用户回答回答于

我认为你应该使用互联网时间服务器。他们正在使用称为NTP的标准化协议。iOS具有内置的读取NTP服务器时间的支持,但作为应用程序开发人员无法访问。要么你自己实现这个,要么你可以使用一个开源库,比如ios-ntpHS NTP。我自己没有使用过任何一个。检查设备的位置并找出时区可能是一个好主意,以获得真正的防弹解决方案。

用户回答回答于
- (NSDate *) CurrentDate 
{
    if ([self hasInternetConnectivity]) // this tests Internet connectivity based off Apple's Reachability sample code
    {
        NSSURL * scriptUrl = [NSURL URLWithString: @"http:// <yoursite>. Com / <the 2 line php script>. Php"];
        NSData * data = [NSData dataWithContentsOfURL: scriptUrl];

        if (data! = nil) {
            NSString * tempString = [NSString stringWithUTF8String: [data bytes]];
            NSDate * currDate = [NSDate dateWithTimeIntervalSince1970: [tempString doubleValue]];
            NSLog (@ "String returned from the site is:% @ and date is:% @", tempString, [currDate description]);
           return currDate;
             }
        else {
           NSLog (@ "nsdata download failed");
           return [NSDate date];
        }
    }
    else {
    NSLog (@ "InternetConnectivity failed");
        return [NSDate date];
    }
}

扫码关注云+社区