2011-06-18 100 views
3

我有一個日期字符串如下:「星期五,2011年6月17日19時20分51秒」,我需要解析爲NSDate格式。NSDate格式

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:@"EEE, d MM YYYY HH:mm:ss zzz"]; 
NSDate *date = [dateFormatter dateFromString:currentPubDate ]; 
[dateFormatter release]; 

該代碼似乎沒有工作,我不知道爲什麼。我已經研究過這個問題,但通過論壇等搜索,似乎無法找到答案。我確信這是dateFormatter的問題。感謝您的幫助

回答

4

您錯誤地指定了您的setDateFormat字符串。這是你應該如何指定它:

[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzz"]; 

YYYY僅在用於一些工業和商業應用「週日期」的格式使用。它看起來像這樣:YYYY-Www-D其中2011-W1-3將等同於第一週的第三天,2011年

蘋果的文檔指出,這是一個常見的錯誤使用YYYY而不是yyyyFixed Formats

4

嘗試用MMM替換MM - 我沒有XCode方便驗證,但通常「M」或「MM」會引用數字月份。在你的情況下,因爲你有「君」,你應該嘗試MMM。

0

你也可以做到以下幾點:

NSDateFormatter具有的屬性:dateStyle & timeStyle

您可以將這些設置爲NSDateFormatterNoStyleNSDateFormatterShortStyleNSDateFormatterMediumStyleNSDateFormatterLongStyleNSDateFormatterFullStyle

一旦這些設置可以使用stringFromDate:得到一個很好的格式化字符串。

查看每個樣式的文檔頁面的時間和日期。

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/c/tdef/NSDateFormatterStyle

乾杯!