4

我正在尝试使用 NSDate dateFromString 方法,但我收到警告并且它正在使应用程序崩溃。代码如下所示:

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

警告是:

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

看来该方法已被弃用(在从 XCode 2 升级到 3.

我可以使用什么替代方法从字符串创建日期?

4

3 回答 3

15

NSDateFormatter是您NSDateNSString.

最基本的用法是这样的:

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

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

NSDate *date = [dateFormatter dateFromString:dateString];
于 2010-08-04T03:30:17.230 回答
2

我有同样的问题。我将 dateFormat 从 @"YYYY/M/d H:m:s" 更改为 @"YYYY/MM/dd HH:mm:ss",如下所示。然后它可以在我的 iPhone 4 上运行。(适用于 iOS 6 的 Xcode 4.5。)


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];
于 2012-09-26T06:38:57.750 回答
0

嗨 Silber 每个人都说同样的事情将字符串日期转换为日期对象。试试这个,我认为你在两个地方使用了两个日期格式化程序,你将日期保存到字符串并从字符串获取日期。正确尝试使用相同的日期格式化程序在这两个地方。它会解决你的问题。

于 2012-08-29T07:46:29.907 回答