NSDate dateFromString устарела? - PullRequest
3 голосов
/ 04 августа 2010

Я пытаюсь использовать метод NSDate dateFromString, но получаю предупреждение, и приложение вылетает. Код выглядит так:

NSString *pickerDate = [NSString stringWithFormat:@"%@", timeSelector.date];
NSDate *defaultDate = [NSDate dateFromString:pickerDate];

Предупреждение:

'NSDate' may not respond to '+dateFromString'.

Похоже, что этот метод устарел (в процессе обновления с XCode 2 до 3.

Какой альтернативный метод я могу использовать для создания даты из строки?

Ответы [ 3 ]

14 голосов
/ 04 августа 2010

NSDateFormatter предназначен для вас, чтобы получить NSDate от NSString.

Основное использование выглядит примерно так:

NSString *dateString = @"3-Aug-10";

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"d-MMM-yy";

NSDate *date = [dateFormatter dateFromString:dateString];
2 голосов
/ 26 сентября 2012

У меня была такая же проблема.Я изменил формат даты с @ "ГГГГ / М / д Ч: м: с" на @ "ГГГГ / ММ / дд ЧЧ: мм: сс" следующим образом.Тогда это работает на моем iPhone 4. (Xcode 4.5 для iOS 6.)


NSDateFormatter *dateFormatter1;
NSString *dateStr1=@"";
NSDate *gantanDate1;

dateFormatter1 = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter1 setLocale:[NSLocale systemLocale]]; 
[dateFormatter1 setTimeZone:[NSTimeZone systemTimeZone]]; 
dateFormatter1.dateFormat=@"YYYY/MM/dd HH:mm:ss";
dateStr1=@"2012/1/1 00:00:00"];
//  in his case,   dateStr1=pickerDate;  
gantanDate1 = [dateFormatter1 dateFromString:dateStr1];
0 голосов
/ 29 августа 2012

Привет, Сильбер, все говорят одно и то же, чтобы преобразовать строковую дату в объект даты. Попробуйте, я думаю, вы использовали два форматера даты в двух местах, где вы сохраняете дату в строку и получаете дату из строки. одинаковые форматеры даты в обоих местах. Это решит вашу проблему.

...