如何在 iOS Swift 中获得实际的真实日期和时间?即使用户从设备设置更改了日期和时间

Par*_*tel 2 iphone datetime offline ios swift

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

Jac*_*ack 5

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

您可以使用服务器时间作为 -

这需要互联网

HTTPURLResponseDate对象。

用 -

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()
}
Run Code Online (Sandbox Code Playgroud)