2010-08-04 53 views
3

我想使用NSDate的dateFromString方法,但我得到一個警告,它崩潰的應用程序。代碼看起來像:NSDate dateFromString已棄用?

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

的警告是:

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

似乎方法已(從XCode中2升級的中間至3

什麼替代方法可以我使用字符串創建日期?

+0

我想'timeSelector'是一個'UIDatePicker',是有一個原因你轉換'date'財產到一個字符串又回到日期? – dreamlax 2010-08-04 03:54:14

+0

這可能更有效率,只是不知道代碼會是什麼:/你介意給我一個例子嗎? – 2010-08-04 04:20:40

+0

我的意思是,你能做到只是'NSDate * defaultDate = timeSelector.date;'? – dreamlax 2010-08-04 04:24:05

回答

13

NSDateFormatter是您從NSString獲得NSDate的預期方式。

最基本的用法是這樣的:

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

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

NSDate *date = [dateFormatter dateFromString:dateString]; 
0

嗨西爾伯大家都說字符串日期轉換日期object.Try同樣的事情,這個我認爲你必須在兩個地方使用了兩個日期格式化你將日期保存爲字符串,並從string.right中獲取日期,試着在兩個地方使用相同的日期格式化程序。它會解決你的問題。

2

我有同樣的問題。 我將@「YYYY/M/d H:m:s」的日期格式更改爲@「YYYY/MM/dd HH:mm:ss」,如下所示。 然後它在我的iPhone 4(4.5的Xcode的iOS 6)


NSDateFormatter *dateFormatter1; 
NSString *[email protected]""; 
NSDate *gantanDate1; 

dateFormatter1 = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormatter1 setLocale:[NSLocale systemLocale]]; 
[dateFormatter1 setTimeZone:[NSTimeZone systemTimeZone]]; 
[email protected]"YYYY/MM/dd HH:mm:ss"; 
[email protected]"2012/1/1 00:00:00"]; 
// in his case, dateStr1=pickerDate; 
gantanDate1 = [dateFormatter1 dateFromString:dateStr1];