9

[動作するソリューションで更新]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());
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 に答える