RSS 2.0 Feed中的RFC-822日期时间格式:不接受CET?

时间:2013-03-06 12:46:14

标签: java date formatting rss atom-feed

[更新了工作解决方案] 我有一个RSS源,可以在RSS客户端中正确显示,但在http://feedvalidator.org验证时,我收到此错误:

pubDate must be an RFC-822 date-time

我的日期格式如下:

Wed, 27 Feb 2013 17:18:15 CET

知道可能出现什么问题吗? 它可能是时区吗?

感谢Calum我现在收到了一个有效的RSS源。原因是CET中不支持pubDate

以下Java代码现在正常运行:

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

2 个答案:

答案 0 :(得分: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以时间格式格式化区域(而不是{{},SimpleDateFormat似乎会为您提供符合RFC-822的日期1}})。

答案 1 :(得分:6)

您必须使用Z格式化时区为Calum,但不要忘记指定Locale,否则如果计算机不起作用不是英文...

这是我的工作代码:

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