Reputation: 2716
I am trying to get the difference in the time from my iPad to my website, which are both local. Every thing works fine until I get to the line below, which should be taking the iPad time and subtracting the serverTime from it.
self.serverTimeOffSet = NSDate.timeIntervalSinceDate(serverTime) as NSTimeInterval
I get the warning "Cast from (NSDate) -> NSTimeInterval to unrelated type 'NSTimeInterval always fails" and self.serverTimeOffset is never set.
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
}
}
})
}
Thanks
Edit - Returned date from site:
2015-09-15T00:01:44.8530546-06:00
Upvotes: 0
Views: 738
Reputation: 2716
Well this was stupid,
NSDate().timeIntervalSinceDate(serverTime)
not
NSDate.timeIntervalSinceDate(serverTime)
Upvotes: 2
Reputation: 236380
You should also format your date as follow:
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"
}
Upvotes: 2