2010-05-10 37 views
5

Tôi lấy một RSS, trong đó tôi nhận được ngày tem sau:Không thể phân tích ngày sử dụng NSDateFormatter

2010-05-10T06:11:14.000Z 

Bây giờ tôi đang sử dụng để phân tích NSDateFormatter tem datetime này.

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

Nhưng nó không làm việc tốt nếu chỉ loại bỏ các phần tem thời gian nó hoạt động cho ngày [parseFormatter setDateFormat:@"yyyy-MM-d"]; Nhưng nếu tôi thêm phần còn lại của những thứ nó trả về nil.

Bất kỳ ý tưởng nào?

Cảm ơn bạn trước ....

Trả lời

26

Bạn cần phải phân tích bằng không giá trị đệm cho d, H, m, s

Bạn cần phải thoát khỏi sự theo nghĩa đen T như 'T'

Bạn cần phải phân tích các phần phân đoạn của các giây với SSS

Bạn có thể chấp nhận một chữ số Z bằng 'Z' hoặc sử dụng chữ hoa Z để thử và phân tích múi giờ nhưng RSS sử dụng tiêu chuẩn riêng.

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

Date Format Patterns

+0

của nó làm việc hoàn hảo, gợi ý của bạn thực sự làm việc, khu vực được phân tách và gửi lại nó 0005 bây giờ, và T được thoát . Cảm ơn bạn một lần nữa. :) – Ansari

0

Từ bộ nhớ, tôi cũng gặp vấn đề này trong quá khứ. Một vài điều cần thử:

  1. Thay thế "T" trong nguồn cấp dữ liệu RSS của bạn bằng dấu cách (và rõ ràng là thay đổi chuỗi định dạng ngày).

  2. Nguồn cấp dữ liệu RSS của bạn có chữ số đệm, trong đó chuỗi định dạng của bạn không có. Hãy thử cái này "yyyy-MM-ddTHH: mm: ss.Z". Theo liên kết này, rằng "z" nên được capilized. http://www.stepcase.com/blog/2008/12/02/format-string-for-the-iphone-nsdateformatter/

  3. Xóa thông tin múi giờ khỏi nguồn cấp dữ liệu RSS và phân tích cú pháp thủ công này. Tôi dường như nhớ điều này gây ra vấn đề cho tôi.

+0

Cảm ơn bạn đã liên kết tiện dụng, và cũng có thể gợi ý của bạn :) – Ansari

Các vấn đề liên quan