【问题标题】:NSDate dateFromString deprecated?NSDate dateFromString 已弃用?
【发布时间】:2010-08-04 03:24:23
【问题描述】:

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

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

警告是:

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

似乎不推荐使用该方法(在从 XCode 2 升级到 3 的过程中。

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

【问题讨论】:

  • 我假设timeSelectorUIDatePicker,您将date 属性转换为字符串并再次转换回日期是否有原因?
  • 这可能更有效,只是不知道代码是什么:/你介意给我举个例子吗?
  • 我的意思是,你能做到NSDate *defaultDate = timeSelector.date;吗?

标签: iphone xcode nsdate xcode3.2


【解决方案1】:

NSDateFormatter 是您从NSString 获取NSDate 的预期方式。

最基本的用法是这样的:

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

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

NSDate *date = [dateFormatter dateFromString:dateString];

【讨论】:

    【解决方案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];
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-12
        • 1970-01-01
        相关资源
        最近更新 更多