2013-03-06 102 views
9

[更新與工作液] 我有獲取RSS客戶正確顯示一個RSS feed,但是當http://feedvalidator.org正在驗證我得到這個錯誤:RSS 2.0 Feed中的RFC-822日期時間格式:CET未被接受?

pubDate must be an RFC-822 date-time 

我的日期格式如下:

Wed, 27 Feb 2013 17:18:15 CET

任何想法可能是錯誤的? 它是時區嗎?

SOLUTION

感謝Calum現在我得到了一個有效的RSS提要。原因是在pubDate中不支持CET

下面的Java代碼工作現在罰款:

String pubDate = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z").format(new Date()); 

回答

8

The RFC表明它僅支持非常有限的符號時區的名稱;只是UTC和美國的:

zone  = "UT"/"GMT"    ; Universal Time 
              ; North American : UT 
      /"EST"/"EDT"    ; Eastern: - 5/ - 4 
      /"CST"/"CDT"    ; Central: - 6/ - 5 
      /"MST"/"MDT"    ; Mountain: - 7/ - 6 
      /"PST"/"PDT"    ; Pacific: - 8/ - 7 
      /1ALPHA      ; Military: Z = UT; 
              ; A:-1; (J not used) 
              ; M:-12; N:+1; Y:+12 
      /(("+"/"-") 4DIGIT)  ; Local differential 
              ; hours+min. (HHMM) 

您可能需要指定爲UTC的偏移量。

既然你說你使用的是Java,它看起來像如果你使用Z格式化區中的時間格式(而不是zSimpleDateFormat會給你一個RFC-822標準的日期。

+0

我希望這可以解決它。現在就去測試。 – basZero 2013-03-06 12:54:16

+0

謝謝@Calum,修復它! – basZero 2013-03-06 13:28:23

+0

很高興它的工作! – Calum 2013-03-06 13:48:31

6

您必須使用Z格式化時區Calum說,但不要忘了指定Locale太否則如果電腦不是英文的,它不會工作...

這是我的工作代碼:

new SimpleDateFormat("E, d MMM yyyy HH:mm:ss Z", Locale.US).format(new Date());