2010-09-24 30 views
0

我有一個表格視圖,它使用NSDateFormatter來顯示日期,使用全日期樣式(今天格式化爲「2010年9月24日星期五」或德語「Freitag,2010年9月24日」)格式化日期。但是,在編輯日期時,格式化程序會強制用戶以相同格式輸入日期。我怎樣才能讓格式化程序在輸入時接受不同格式的日期?理想情況下,格式化程序應該使用一些啓發式來自動檢測輸入的格式。如何使一個NSDateFormatter接受一種格式的輸入並將其顯示在另一個格式中?

我嘗試在代碼中設置lenient屬性,但這根本不會改變觀察到的行爲。

很多程序都會自動檢測輸入的日期格式,所以這是必須的。還是他們都在使用他們自己的實現?

回答

0

也許Data Formatting Guide的這一部分可以幫助:

的10.4行爲模式允許更多 可配置性和更好的 定位;您應該將其用於任何新項目的 ,並且理想情況下升級 任何現有代碼使用v10.0 行爲來使用v10.4行爲。

對於向後的二進制兼容性, 默認行爲爲 Mac OS X上的NSDateFormatter版本 10.4是v10.0行爲。但是,在Mac OS X 10.5及更高版本中, 默認爲v10.4行爲。 的說法 NSDateFormatterBehavior10_4:您可以通過 調用類 方法,setDefaultFormatterBehavior設置NSDateFormatter到 10.4行爲的所有 實例的默認行爲。您也可以通過調用 setFormatterBehavior:來單獨爲任何實例 設置行爲。

+0

這並沒有真正的幫助。切換到v10.0行爲時,它會接受不同格式的日期,但它會忽略語言環境並堅持* month.day.year *格式,對於德國,我們使用* day.month.year *格式時這是錯誤的。 – Sven 2010-09-26 10:43:39

相關問題