не может взять NSDate из dateString - PullRequest
0 голосов
/ 09 марта 2012

У меня есть строка @"Sun, 15 Jan 2012 17:09:48 +0000" Я хочу дату от нее .. А что я могу сделать Я пытался

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"DDD, DD MMM YYYY HH:MM:SS +HHMM"];
NSDate *date = [dateFormat dateFromString:stringDate];
but date was nslogged with null

Ответы [ 4 ]

1 голос
/ 09 марта 2012

Ваш формат неверный и вот почему

Sun, 15 Jan 2012 17:09:48 +0000
DDD, DD MMM YYYY HH:MM:SS +HHMM
^^^  ^^     ^^^^    ^^ ^^ ^^^^^ < Treating the last 2 digits of the timezone as months
^^^  ^^     ^^^^    ^^ ^^ ^^^ < Treating the first 2 digits of the timezone as hours
^^^  ^^     ^^^^    ^^ ^^ ^ < Hardcoding the + (timezone can handle that)
^^^  ^^     ^^^^    ^^ ^^ < Using fractional seconds (not a big deal)
^^^  ^^     ^^^^    ^^ < Using months instead of minutes
^^^  ^^     ^^^^ < Using weak year instead of calendar year
^^^  ^^ < Using day of year instead of day of the month
^^^ < Using day of year instead of day of the week

Вот правильный формат "EEE, dd MMM yyyy HH:mm:ss ZZZ"

1 голос
/ 09 марта 2012

неверно dateFormat:, используйте это:

[dateFormat setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"];

timezone unicode example

подробнее о: http://unicode.org/reports/tr35/tr35-6.html#Time_Zone_Fallback

0 голосов
/ 09 марта 2012

Ну, есть пара вещей, которые я вижу неправильно.Я думаю, вам нужно просмотреть руководство по форматированию даты: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW1.

Во-первых, формат чувствителен к регистру.Soo ... заглавная буква «M» - это месяц, строчная буква «m» - минута.День в нижнем регистре «д».Год в нижнем регистре 'у'.Возможно, вы допустили и другие ошибки, но это должно привести вас в правильное русло.

0 голосов
/ 09 марта 2012

Ваш формат даты, вероятно, неправильный. Проверьте документацию здесь:

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

Попробуйте это: E, d MMM y HH:mm:ss Z

...