2010-08-12 63 views
4

我想只使用NSDateFormatter格式化日期/時間到NSDate對象的字符串表示形式。問題是,我無法弄清楚如何允許格式中的序號後綴。NSDateFormatter NSString w /天后綴到NSDdate

因此,可以說我有一個字符串 「週三,2010年8月11日8:00 PM」

什麼一行NSDate的日期格式,我應該使用?

類似於「EEEE,MMM dd'th'yyyy h:mm a」可以工作,但這隻適用於以'th'結尾的順序日期,而我需要一種格式來允許1st, 2nd,3rd,4th 5th等

它看起來像格式字符串中的通配符來完成此操作。我嘗試了一些東西,如:%*?

+1

看到這個問題:http://stackoverflow.com/questions/1283045/ordinal-month-day-suffix-option-for-nsdateformatter-setdateformat – Wevah 2010-08-12 00:31:53

+0

這是相反的方式。 NSDate到NSString,我需要NSString到NSDate – psy 2010-08-12 03:30:42

+0

一般情況下,如果您嘗試解析包含一週中某天的日期,NSDateFormatter會感到困惑。最好把它解開,然後解析剩下的部分。 – 2013-07-29 14:35:37

回答

3

這顯然不可能與NSDateFormatter。

+1

我放棄並手動替換帶有空格的」st「,」nd「,」rd「,」th「的引用在通過dateformatter發送之前,使用''''''字符。使事情變得更加困難,但它確實是唯一的方法,因爲沒有通配符。 – rwyland 2012-12-05 07:03:52

-1

你想用一個NSDateFormatter像這樣:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];  
[dateFormatter setDateStyle: NSDateFormatterLongStyle]; 
NSDate *date = [dateFormatter dateFromString:dateString]; 
[dateFormatter release]; 

無論NSDateFormatterLongStyle或NSDateFormatterFullStyle應該得到你要尋找的結果。

+0

我正在尋找傳遞一個自定義的字符串格式化程序,而不是使用SDK提供的。 – psy 2011-02-26 04:33:35

+1

根據文檔,設置日期樣式沒有幫助 - 無法看到任何支持「1st」,「2nd」等樣式。 1937年11月23日「,他想要」23日「。 – occulus 2011-05-31 09:09:15