Ваш формат даты не соответствует формату вашей строки даты.Прочитайте о шаблонах формата даты Unicode .
И после этого попробуйте @"yyyy-MM-dd'T'HH:mm:ssZZZ"
Но я думаю, вы все равно пытаетесь сделать что-то не так.Время одинаково для всех мест в мире.Вам не нужно вычислять новую NSDate только потому, что ваш источник находится в другом часовом поясе.
Используйте dateFormat сверху и сравните его напрямую с другой NSDate.
Возможно что-то вроде этого:
NSString *serverTime = @"2012-01-11T06:17:39+0000";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
NSDate* sourceDate = [dateFormatter dateFromString:serverTime];
if (!sourceDate) {
NSLog(@"Wrong NSDateFormatter format!");
}
else {
NSDate *date24HoursAgo = [NSDate dateWithTimeIntervalSinceNow:-(24*60*60)];
NSLog(@"%@", sourceDate);
NSLog(@"%@", date24HoursAgo);
if ([sourceDate compare:date24HoursAgo] == NSOrderedAscending) {
NSLog(@"Timestamp from server is older than 24 hours.");
}
}