2013-12-13 43 views
1

服務器發送的日期格式如下:「Fri Dec 13 2013 16:26:18 GMT + 0000(UTC)」但我可以'弄不明白使用NSDateFormatter如何設置NSDateFormatter來解析「..GMT + 0000(UTC)」

如果我這樣做此分析則解析:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"EEE MMM dd yyyy HH:mm:ss"]; 
NSDate *date = [dateFormatter dateFromString:@"Fri Dec 13 2013 16:26:18"]; 

不過,我需要這樣的:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"EEE MMM dd yyyy HH:mm:ss XXX"]; 
NSDate *date = [dateFormatter dateFromString:@"Fri Dec 13 2013 16:26:18 GMT+0000 (UTC)"]; 

我已經嘗試了一則XXX一些東西,比如z或Z但所有結果都是無效日期。

+0

看那[格式化規格] (http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns),並使用適當的時區格式來匹配你所擁有的。 – rmaddy

+0

順便說一句 - 那個日期格式非常不尋常。爲什麼有兩個時區部分?您既有「GMT + 0000」又有「(UTC)」。你還有什麼其他的價值?它會始終是UTC還是會有其他時區的日期? – rmaddy

+0

我無法控制發送日期的服務器代碼,顯然它應該是根據這個:http://dev.mysql.com/doc/refman/5.1/en/datetime.html。 – Gruntcakes

回答

3

具有兩個單獨的時區規範的日期字符串很奇怪。它可能工作帶:

EEE MMM dd yyyy HH:mm:ss zZ (z) 

如果括號內的部分將永遠是UTC話,我會做:

EEE MMM dd yyyy HH:mm:ss zZ '(UTC)' 

或可能:

EEE MMM dd yyyy HH:mm:ss 'GMT'Z '(UTC)' 
+0

謝謝,最後一個工作,就像「EEE MMM dd yyyy HH:mm:ss'GMT'Z(z)」一樣 – Gruntcakes