首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从(NSDate) -> NSTimeInterval转换到不相关类型的NSTimeInterval总是失败

从(NSDate) -> NSTimeInterval转换到不相关类型的NSTimeInterval总是失败
EN

Stack Overflow用户
提问于 2015-09-15 05:45:57
回答 2查看 723关注 0票数 0

我正在尝试从我的iPad到我的网站的时间的差异,这都是本地的。每件事情都很好,直到我到达下面的线,它应该占用iPad的时间,并从它减去serverTime。

代码语言:javascript
复制
self.serverTimeOffSet = NSDate.timeIntervalSinceDate(serverTime) as NSTimeInterval

我得到警告“从(NSDate) -> NSTimeInterval转换到不相关类型'NSTimeInterval总是失败‘,self.serverTimeOffset永远不会被设置。

代码语言:javascript
复制
var serverTimeOffSet: NSTimeInterval = 0.0

func setServerOffset(){
    var currentTime = NSDate.timeIntervalSinceReferenceDate()
    var url = NSURL(string: "http://someurl.com/time")
    var request = NSMutableURLRequest(URL:url!)
    var response: NSURLResponse?
    var error: NSError?
    request.HTTPMethod = "get"
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler: {(response:NSURLResponse!, data:NSData!, error:NSError!) -> Void in
        if (error == nil) {
            var dateString = NSString(data: data, encoding: NSUTF8StringEncoding) as! String
            let dateFormatter = NSDateFormatter()
            dateFormatter.dateFormat = "YYYY-MM-dd'T'HH:mm:ss"
            dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
            if let serverTime = dateFormatter.dateFromString(dateString){
                self.serverTimeOffSet = NSDate.timeIntervalSinceDate(serverTime) as NSTimeInterval
            }
        }
    })
}

谢谢

编辑-从网站返回的日期:

代码语言:javascript
复制
2015-09-15T00:01:44.8530546-06:00
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-15 06:04:26

这太蠢了,

代码语言:javascript
复制
NSDate().timeIntervalSinceDate(serverTime)    

代码语言:javascript
复制
NSDate.timeIntervalSinceDate(serverTime)     
票数 2
EN

Stack Overflow用户

发布于 2015-09-15 06:05:13

您还应该将约会的格式设置为:

代码语言:javascript
复制
let dateString = "2015-09-15T00:01:44.8530546-06:00"
let dateFormatter = NSDateFormatter()
dateFormatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierISO8601)
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSSxxx"
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
if let serverTime = dateFormatter.dateFromString(dateString){
   serverTime  // "Sep 15, 2015, 3:01 AM"
}

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32578553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档