0

我正在尝试对 iPhone 上的 Dates 进行一些基本操作。我想取一个像“2010-02-19”这样的字符串,然后把它变成一个像“Friday, Feb 19”这样的字符串。我将收到的字符串将始终在 2010-02-19 中。现在,我正在运行以下有效的代码,但它会产生一条警告,上面写着“NSDate 可能无法响应 +dateWithNaturalLanguageString:”

NSDate *date = [NSDate dateWithNaturalLanguageString:scheduled];
NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
[df setDateFormat:@"EEEE, MMM dd"];

return [df stringFromDate:date];

该代码有效,但会产生该警告。我应该担心它,还是在 iPhone 上可以。我应该使用另一个 NSDate 初始化程序吗?

4

2 回答 2

2

+dateWithNaturalLanguageString似乎只在 Mac 上可用:Mac开发中心的NSDate 类参考与iPhone开发中心的NSDate 类参考

此外,文档说:

它可能会产生意想不到的结果,强烈建议不要使用它

在类参考的概述部分中,您可以找到以下信息:

NSDate 提供了几种方法来解释和创建日期的字符串表示形式(例如,dateWithNaturalLanguageString:locale: 和 descriptionWithLocale:)。一般来说,在 Mac OS X v10.4 和更高版本上,您应该使用 NSDateFormatter 的实例来解析和使用方法 dateFromString: 和 stringFromDate: 来解析和生成字符串——有关更多详细信息,请参阅 Mac OS X 10.4 上的 NSDateFormatter。

鉴于这仅在 Mac 上正式可用,但在 iPhone 上不可用,我不会在 iPhone 项目中使用它。即使在 Mac 上,Apple 似乎也建议使用 an NSDateFormatter

于 2010-02-18T02:38:30.163 回答
0

尝试使用 NSDateFormatter:dateFromString 。这里有一个例子

于 2011-04-24T11:23:00.850 回答