2012-02-17 4 views
0

Я передаю строку из javascript в Objective-C в форме «2012-02-17 14:21:30 +0000». Моего код выглядит следующим образом:Как преобразовать NSString в действительный NSDate (iOS)

NSString *firingDate = [_parameters objectForKey:@"fire"]; 
NSDate *notificationDate = [NSDate dateWithString:firingDate]; 

Вопрос заключается в том, что я в конечном итоге чтении ссылки OS X вместо КСН документы (! DOH), так что это бросает предупреждение, как dateWithString нет в прошивке. В теории я полагаю, что это не должно работать вообще, но оно, хотя и с этим предупреждением.

Что такое правильный способ преобразования строки в NSDate?

+0

возможно дубликат [NSString к NSDate] (http://stackoverflow.com/questions/1353081/nsstring-to-nsdate) – DarkDust

ответ

2

Try:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
formatter.dateFormat = @"YYYY-MM-dd HH:mm:ss Z"; 
NSDate *notificationDate = [formatter dateFromString:firingDate]; 
+0

Я думаю, что формат даты должен быть «YYYY- MM-dd HH: mm: ss Z "(это то, что сработало для меня) – AlBeebe

3

Правильный способ заключается в использовании NSDateFormatter в качестве фабрики для создания дат из строк (и наоборот).

2

Попробуйте это:

NSString *firingDate = [_parameters objectForKey:@"fire"]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSDate *notificationDate = [dateFormatter dateFromString:firingDate]; 

Отъезд reference для разбора дат из нескольких регионов.

Не забудьте выпустить ваш форматировщик, когда закончите.

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