9

[使用工作解决方案更新] 我有一个 RSS 提要,它可以在 RSS 客户端中正确显示,但是在通过http://feedvalidator.org验证时出现此错误:

pubDate must be an RFC-822 date-time

我的日期格式如下:

Wed, 27 Feb 2013 17:18:15 CET

知道有什么问题吗?可能是时区吗?

解决方案

感谢 Calum,我现在得到了一个有效的 RSS 提要。原因CETpubDate.

以下 Java 代码现在可以正常工作:

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

2 回答 2

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)

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

由于您说您使用的是 Java,因此如果您使用时间格式(而不是 )来格式化区域,SimpleDateFormat似乎会给您一个符合 RFC-822 的日期。Zz

于 2013-03-06T12:50:56.743 回答
6

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

这是我的工作代码:

new SimpleDateFormat("E, d MMM yyyy HH:mm:ss Z", Locale.US).format(new Date());
于 2013-05-17T19:06:16.763 回答