我有一个NSString,可能包含5-10种不同的样式日期和时间。 我需要将它们全部转换为NSDates。
iPhone SDK 3.1.3中是否不再存在dateWithNaturalLanguageString?
我不需要转换像@“上周三下午1点”这样的内容。
我需要转换如下内容: @“01 - 2月 - 2010” @“2010年2月1日” @“2010年2月1日” @ “12/31/2010” @ “2010年12月31日”
(我见过的每个例子都要求你已经知道NSString的格式。我有否知道它将是什么格式。)
答案 0 :(得分:2)
你知道所有可能的格式吗?您总是可以尝试为每个创建NSDateFormatter
,然后尝试字符串,直到返回有效日期。这很蹩脚,但可能比没有好。
答案 1 :(得分:1)
我没有在任何iPhone SDK版本中看到dateWithNaturalLanguageString;在旧版本的文档中可能是一个错误(Mac OS X中的等效功能在10.4中已经弃用,但从未运行得很好。)
相反,只需尝试依次解析各种日期格式。
实现自然语言日期解析,特别是以适合每个语言环境的方式实现,非常困难。如果你需要在另一个上下文中解析自然语言日期,我发现的最好的是Date::Manip Perl模块。
答案 2 :(得分:0)
你应该总是使用NSDataDetector,因为它可以很好地处理未知格式,请参阅: