2010-05-10 61 views
5

我獲取一個RSS,在我收到以下日期標記來解析日期:無法使用NSDateFormatter

2010-05-10T06:11:14.000Z 

我現在用的NSDateFormatter解析這個日期時間戳。

[parseFormatter setDateFormat:@"yyyy-MM-dTH:m:s.z"]; 

但它不工作很好,如果只是將其刪除適用於日期[parseFormatter setDateFormat:@"yyyy-MM-d"];但是,如果我加剩下的東西,它返回零時間戳部分。

有什麼想法?

在此先感謝....

回答

26

您需要解析零個填充值d,H,M,S

您需要躲避字面T作爲'T'

您需要使用解析秒的小數部分SSS

您可以接受Z'Z'或使用大寫Z來嘗試和解析時區,但RSS使用單獨的標準。

@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"

Date Format Patterns

+0

它的工作完美,你的建議果然奏效,區域分析和現在正在返回0005,T是逃脫。 再次感謝一堆。 :) – Ansari 2010-05-10 09:35:57

0

從記憶我已經在過去的這個問題爲好。幾件事情可以嘗試:

  1. 用一個空格替換RSS提要中的「T」(並且顯然也會更改日期格式字符串)。

  2. 您的RSS提要有填充數字,其中格式字符串沒有。試試這個「yyyy-MM-ddTHH:mm:ss.Z」。根據這個環節,這個「z」應該是capilized。 http://www.stepcase.com/blog/2008/12/02/format-string-for-the-iphone-nsdateformatter/

  3. 剝離RSS提要中的時區信息並手動解析此信息。我似乎記得這對我造成了問題。

+0

感謝您的方便鏈接,而且爲您的建議:) – Ansari 2010-05-10 09:37:22