2013-10-28 4 views
-1

У меня проблема с преобразованием даты, которой мне не удалось найти решение. Это сойдет с ума. Итак, я возвращаю дату из веб-службы REST под строковым типом, и когда я пытаюсь преобразовать дату в NSDate, я теряю один год.Преобразование NSDate из проблемы NSString

Вот код:

- (NSDate *)convertISOToDate:(NSString *) dateString { 
    NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; 
    [formatter setCalendar:[NSCalendar currentCalendar]]; 
    [formatter setDateFormat:@"YYYY-MM-dd'T'HH:mm:ssZZZ"]; 
    [formatter setLocale:[NSLocale currentLocale]]; 
    NSDate *date = [formatter dateFromString:dateString]; 
    return date; 
} 

Когда я отладки, у меня есть это на входе: DateString __NSCFString * @» -12-30T11: 51: 46 + 0100"

И на дату объекта: дата __NSDate * -12-30 11:51:46 CET 0x1dd3e950

У кого-нибудь есть идеи по этому вопросу?

ответ

4

Использовать "yyyy" вместо "YYYY". "YYYY" - еженедельный год.

[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"]; 
+0

Правильно! Огромное спасибо, теперь он отлично работает :) – SlumTheSlug

+0

Добро пожаловать, я столкнулся с той же проблемой в прошлом :) –

+0

Тогда примите этот ответ .... –

2

попробовать это:

[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZ]; 
Смежные вопросы