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

bas*_*ero 9 java rss formatting date atom-feed

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

pubDate must be an RFC-822 date-time
Run Code Online (Sandbox Code Playgroud)

我的日期格式如下:

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());
Run Code Online (Sandbox Code Playgroud)

Cal*_*lum 8

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)
Run Code Online (Sandbox Code Playgroud)

您可能需要指定为UTC的偏移量.

由于您说您正在使用Java,因此如果您使用时间格式(而不是)格式化区域,SimpleDateFormat似乎会为您提供符合RFC-822的日期.Zz


Fre*_*zaq 6

您必须ZCalum所说的那样使用格式化时区,但是不要忘记指定时区,Locale否则如果计算机不是英语则它将无法工作...

这是我的工作代码:

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