2013-10-13 3 views
0

Попытка преобразовать следующую строку в NSDate - Я думал, что мой DateFormatter был установлен правильно, но он не работает:NSDate из струнного преобразования

NSString *dateToCheckString = @"Friday, Dec. 6, 2013 at 7:00 PM"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"eeee, MMM. dd, yyyy at hh a"]; 
NSDate *dateToCheckNSDate = [[NSDate alloc] init]; 
dateToCheckNSDate = [dateFormatter dateFromString:dateToCheckString]; 

// Log it out to see the result: 
NSLog(@"Conversion yielded: '%@'", [dateToCheckNSDate description]); 

Выход я получаю (null)

Любые идеи?

+2

at должно быть «в». – Jano

+0

Вы должны напечатать строку с [dateFormatter stringFromDate: dateToCheckNSDate], иначе вы получите другой час на выходе в зависимости от вашего часового пояса. – Jano

+0

Спасибо! Вы сделали 2 хороших момента (об использовании 'at' и об использовании 'stringFromDate '), но ответ Дэвида Ронквиста (ниже) добавил еще несколько важных моментов. Поэтому правильный ответ заключался в том, чтобы собрать ваш вклад с его помощью. К сожалению, поскольку он опубликовал его в качестве фактического ответа, и вы разместили свой комментарий в качестве комментария, я могу только счесть его ;-(Но вы заслуживаете 50%, поэтому снова спасибо – sirab333

ответ

3

Нет, это неправильно. dd - проложенный день (06 в вашем примере), так что это должно быть только d. Также «7:00» не соответствует hh (который дополняется часами). Вы ищете h:mm

+1

Спасибо за это - он работает! (Пожалуйста, обратите внимание что я также использовал предложения @ Jano в своем комментарии выше вместе с вашим вводом, чтобы составить окончательный правильный рабочий код.) – sirab333

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