Ich berechne den Zeitunterschied zwischen zwei NSDates und es gibt immer 0,0000 zurück separat geht, wird es korrekt gedruckt und wenn ich den Unterschied zu drucken, druckt er 0,0000 ... hier ist der Code, das Datum zu berechnen ..Zeitintervall zwischen zwei Daten gibt Null
-(NSDate *) toLocalTime
{
NSTimeZone *tz = [NSTimeZone defaultTimeZone];
NSInteger seconds = [tz secondsFromGMTForDate: [NSDate date]];
return [NSDate dateWithTimeInterval: seconds sinceDate: [NSDate date]];
}
und hier ist der Code, wo ich den Unterschied finden ..
NSLog(@"the time when the location was updated is %@",timeWhenTheLocationWasUpdated);
NSLog(@"the time when the server was contacted last time was %@",timeWhenLastLocationPosted);
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss ZZZ"];
NSDate *timeofUpdatingLocation = [[NSDate alloc] init];
NSDate *timeofPostingToTheServer = [[NSDate alloc]init];
timeofUpdatingLocation = [dateFormatter dateFromString:timeWhenTheLocationWasUpdated];
timeofPostingToTheServer = [dateFormatter dateFromString:timeWhenLastLocationPosted];
NSTimeInterval difference = [timeofPostingToTheServer timeIntervalSinceDate:timeofUpdatingLocation];
NSLog(@"the difference between posting the location to the server and updating the location is %f",difference);
Beide NSlogs am Anfang des Codes pr Gibt das Datum in dem Format an, das im Datumsformatierer korrekt angegeben ist.
Aktualisieren Sie Ihre Frage mit der tatsächlichen Protokollausgabe. Sie müssen auch 'timeofUpdatingLocation' und' timeofPostingToTheServer' protokollieren (was ich glaube, sind beide 'nil'). – rmaddy
Und was hat die 'toLocalTime' Methode mit dem Problem zu tun? – rmaddy
Meine Vermutung ist, dass Ihr 'dateFromString' für beide Daten fehlschlägt, wodurch beide Daten identisch sind und somit 0 Zeit zwischen ihnen haben. – Putz1103