RFC822形式の日付形式の解析

RSSの更新日時の形式として ISO8601と RFC822形式が見られますが、
後者の方の解析がよくわからなかったので調べてみた。


CPANを探したところいくつかモジュールが見つかったんで
とりあえず DateTime名前空間にある DateTime::Format::Mailと
いうモジュールを使ってみた。

#!/usr/bin/env perl
use strict;
use warnings;

use DateTime::Format::Mail;

my $pf = DateTime::Format::Mail->new();
my $dt = $pf->parse_datetime("Fri, 12 Mar 2010 22:30:33 +0900");

print $dt->ymd, "\n";


parse_dateメソッドに RFC822/2822形式の文字列を渡すと
DateTimeオブジェクトが返ってきます。

結果

% perl parse_date_rfc822.pl 
2010-03-12

ちゃんとできてますね。
これでブログの更新日時の解析がちゃんとできそうです。