Почему NSDateFormatter возвращает ноль? - PullRequest
2 голосов
/ 08 апреля 2011

Если быть более точным, это не работает для меня:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-ddTHH:mm:ssZ"];
NSDate *prevday = [formatter dateFromString:@"2011-04-07T22:00:48Z"];    

prevday возвращает NIL.

Ответы [ 2 ]

16 голосов
/ 08 апреля 2011

Вам нужно вставить галочки в строку:

@"YYYY'-'MM'-'dd'T'HH':'mm':'ss'Z'"
0 голосов
/ 08 апреля 2011

Согласно этому документу;

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html%23//apple_ref/doc/uid/TP40002369-SW1

Форматеры даты используют следующую версию стандарта;

http://unicode.org/reports/tr35/tr35-10.html#Date_Format_Patterns

так что вы бы использовали формат даты 'гггг-мм-ддтчч: мм: сс' Я не уверен насчет Z, это должен быть часовой пояс? Z в строке формата даст вам трехбуквенное название часового пояса.

Отредактировано на основе ваших правок выше:

[formatter setDateFormat:@"YYYY-MM-ddTHH:mm:ssZ"];

Вот почему возвращается ноль.

"Z" ожидает, что часовой пояс будет в 3-х символьном часовом поясе ...

Брось Z или убери его с кавычкой. Прочтите выше документацию tr35 для получения дополнительной информации.

...