NSDate Форматирование - PullRequest
       48

NSDate Форматирование

3 голосов
/ 19 июня 2011

У меня есть следующая строка даты: «Пт, 17 июня 2011 19:20:51 PDT», которую мне нужно проанализировать в формате NSDate.

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
 [dateFormatter setDateFormat:@"EEE, d MM YYYY HH:mm:ss zzz"];
 NSDate *date = [dateFormatter dateFromString:currentPubDate ];
 [dateFormatter release];

Код некажется, работает, и я не уверен, почему.Я посмотрел на проблему, но поиск по форумам и т.д.Я действительно считаю, что это проблема с dateFormatter.Спасибо за вашу помощь

Ответы [ 3 ]

4 голосов
/ 19 июня 2011

Вы неправильно указали строку setDateFormat.Вот как вы должны были это указать:

[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzz"];

YYYY используется только в формате «Неделя», используемом в некоторых промышленных и коммерческих приложениях.Это выглядит так: YYYY-Www-D, где 2011-W1-3 будет соответствовать третьему дню первой недели 2011 года.

В документации Apple отмечается, что распространенной ошибкой является использование YYYY вместоyyyy: Фиксированные форматы

4 голосов
/ 19 июня 2011

Попробуйте заменить MM на MMM - у меня нет XCode для проверки, но обычно "M" или "MM" относятся к числовому месяцу. В вашем случае, так как у вас есть «июнь», вы должны попробовать МММ.

0 голосов
/ 29 мая 2014

Вы также можете сделать следующее:

NSDateFormatter имеет свойства: dateStyle & timeStyle

Вы можете установить их на NSDateFormatterNoStyle, NSDateFormatterShortStyle, NSDateFormatterMediumStyle, NSDateFormatterLongStyle, NSDateFormatterFullStyle

После того, как они установлены, вы можете использовать stringFromDate:, чтобы получить красиво отформатированную строку.

Посетите страницу документации для каждого стиля со временем и датой.

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/c/tdef/NSDateFormatterStyle

Ура!

...