RFC822 の日付形式

執筆日時:

RSS 2.0 を実装する - だるろぐ の記述に誤りがあった(ちなみにこのブログは誤りだらけなので鵜呑みにしてはいけない)RSS 2.0 Notes によれば、日付の形式は RFC822 に従わなければいけなかったらしい。例えばこんな感じ。

Sun, 12 Feb 2012 21:09:36 +0900

とりあえず、こうしてみた。

@LastUpdated.ToString("ddd, dd MMM yyyy HH:mm:ss zzz")

結果

日, 12 2 2012 21:09:36 +09:00

カルチャーを指定してみた。

@LastUpdated.ToString(
"ddd, dd MMM yyyy HH:mm:ss zzz",
System.Globalization.CultureInfo.InvariantCulture)

結果

Sun, 12 Feb 2012 21:09:36 +09:00

あともう少し。タイムゾーンの“:“が要らない。タイムゾーンの書式設定を"zz00"にすればいいかと思ったけど、世の中には分単位でタイムゾーンを決めているとこもあるらしいので、この方法は使えない。

@LastUpdated.ToString(
"ddd, dd MMM yyyy HH_mm_ss zzz",
System.Globalization.CultureInfo.InvariantCulture
).Replace(":", "").Replace("_", ":")

Sun, 12 Feb 2012 21:09:36 +0900

毎回書くのはメンドクサイので DateTime の拡張メソッドにしておくとよさげ。その他にもちょいちょい修正してみた。