如何在iOS Swift中获取实际的实际日期和时间?即使用户已通过设备设置更改了日期和时间

时间:2018-07-20 04:57:39

标签: ios iphone swift datetime offline

我想在我的应用程序中实现离线打孔功能,截至目前,我正在使用系统日期和时间,但是用户可以通过设备设置更改日期和时间,因此它不可靠,这就是为什么我想要不受设备影响的真实实际时间的原因日期和时间。

2 个答案:

答案 0 :(得分:3)

如果设备处于脱机状态(未连接到任何网络),则无法获得“真实的实际时间”。您只能了解系统的时间观念,而这是在用户控制之下的。

答案 1 :(得分:1)

实际上,如果用户在设置中启用了自动计时,我们将无权访问。

您可以将服务器时间用作-

这需要互联网

HTTPURLResponse提供Date对象。

使用-

getTimeFromServer { (serverDate) in
   print(serverDate)
 }   

func getTimeFromServer(completionHandler:@escaping (_ getResDate: Date?) -> Void){
    let url = URL(string: "https://www.apple.com")
    let task = URLSession.shared.dataTask(with: url!) {(data, response, error) in
        let httpResponse = response as? HTTPURLResponse
        if let contentType = httpResponse!.allHeaderFields["Date"] as? String {
            //print(httpResponse)
            let dFormatter = DateFormatter()
            dFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss z"
            let serverTime = dFormatter.date(from: contentType)
            completionHandler(serverTime)
        }
    }
    task.resume()
}