2010-03-04 91 views
2

我有一個NSString可能包含5-10個不同樣式的日期和時間。 我需要將它們全部轉換爲NSDates。從NSString轉換爲NSDate(即使您不知道NSString格式)

在iPhone SDK 3.1.3中dateWithNaturalLanguageString不再存在嗎?

我是不是需要轉換@「上週三下午1點」。

我需要的東西轉換,如: @ 「01 - 2月 - 2010」 @ 「2010年2月1日」 @ 「2010年2月1,」 @ 「12/31/2010」 @「12 31-2010"

(我見過的每個實例都需要你已經知道的NSString的格式。我有NO知道它會是什麼格式)。

回答

2

你知道所有可能的格式?你總是可以嘗試爲每一個創建一個NSDateFormatter,然後嘗試一個字符串,直到返回一個有效的日期。這非常糟糕,但可能比沒有好。

+0

我不知道的日期格式。但這將是一個基本的,簡單的,常用的。在其他語言中,它只是一個簡單的函數調用:date = CDate(string)。完成。不知道爲什麼Apple/C/Objective-C將它置於「非常難做」和「不可能做」之間。 – Bonnie

1

我在任何iPhone SDK版本中都看不到dateWithNaturalLanguageString;這可能是舊版本文檔中的一個錯誤(Mac OS X中的等效功能在10.4中已棄用,而且無論如何都不能很好地工作)。

相反,只要嘗試依次解析各種日期格式。

實現自然語言日期解析,特別是以適用於每種語言環境的方式實現,非常困難。如果您需要在另一個上下文中進行自然語言日期解析,我發現的最好的模塊是Date::Manip Perl模塊。