Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NSDate dateFromString deprecated?

I'm trying to use the NSDate dateFromString method but I'm getting an warning and it's crashing the app. The code looks like:

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

The warning is:

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

It appears that method is deprecated (in the midst of an upgrade from XCode 2 to 3.

What alternate method can I use to create a date from a string?

like image 699
Ian McIntyre Silber Avatar asked Dec 04 '22 11:12

Ian McIntyre Silber


2 Answers

NSDateFormatter is the intended way for you to get an NSDate from an NSString.

The most basic usage is something like this:

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

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

NSDate *date = [dateFormatter dateFromString:dateString];
like image 59
Nick Forge Avatar answered Dec 13 '22 17:12

Nick Forge


I had a same problem. I changed the dateFormat from @"YYYY/M/d H:m:s" to @"YYYY/MM/dd HH:mm:ss" as follows. Then it works on my iPhone 4. (Xcode 4.5 for 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];
like image 27
shrinetree Avatar answered Dec 13 '22 19:12

shrinetree