2010-01-06 4 views
0

Почему NSDateFormatter неправильно истолковывает собственную созданную датуString?NSDateFormatter неверный вывод со строкой из stringWithDate:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 

[dateFormatter setDateFormat:@"YYYY-MM-DD'T'HH:mm:ss.SSSZZZZ"]; 

NSDate *now = [NSDate date]; 

NSLog(@"Now: %@, Date: %@", [dateFormatter dateFromString:[dateFormatter stringFromDate:now]], now); 

производит следующий результат: Сейчас: 1970-01-06 18:07:05 +0100 Дата: 2010-01-06 18:07:05 +0100

Я знаю, что вы должен использовать yyyy и dd (и это не происходит с yyyy и dd), но здесь дело не в этом. Я ожидаю получить ту же дату, когда синтаксический анализ строки, созданной для меня.

ответ

1

Это будет работать

[dateFormatter setDateFormat:@"y-MM-DD'T'HH:mm:ss.SSSZZZZ"]; 

Посмотрите здесь, http://www.crystalminds.nl/?p=4 для получения дополнительной информации о difrent флагов.

Похоже, форматировщик не распознает ни один год при использовании YYYY, поскольку

[dateFormatter setDateFormat:@"YYYY-MM-DD'T'HH:mm:ss.SSSZZZZ"]; 
// is equal to 
[dateFormatter setDateFormat:@"MM-DD'T'HH:mm:ss.SSSZZZZ"]; 
+0

Спасибо за ответ (поздний ответ, я знаю), я думал, что я мог бы дать вам несколько повторений, но жаль. возможно позже .... – maxbareis

Смежные вопросы