[更新了工作解决方案] 我有一个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());
答案 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());