DateTime::Format::HTTPがPDTのタイムゾーンを食えなかったでござる
FeedBurnerに通したInDesignの勉強部屋のRSSが、自作のRSSからJavaScriptFeedに変換するスクリプトでこけていた。
調べてみたら、pubDate要素の日付のタイムゾーンがPDTとなっていた。しかしなんでいきなりなるかなー。仕様でも変わったのかなー以前の形式は覚えてないけれども。
というわけで、変換スクリプトで使っているDateTime::Format::HTTPと、以前教えてもらったDate::Parseで、比較してみた。
use strict;
use warnings;
use DateTime;
my @date = (
'Wed, 16 Jun 2010 07:00:00 GMT',
'Wed, 16 Jun 2010 00:00:00 PDT',
);
foreach my $item ( @date ) {
parse_date( $item );
print "---\n";
}
exit;
sub parse_date {
my $date = shift;
my $dt;
print "input: $date\n";
use Date::Parse;
print "Date::Parse ";
$dt = DateTime->from_epoch( epoch => str2time($date) );
print "$dt\n";
use DateTime::Format::HTTP;
print "DateTime::Format::HTTP ";
$dt = DateTime::Format::HTTP->parse_datetime($date);
print "$dt\n";
}
__END__
$ perl test.pl input: Wed, 16 Jun 2010 07:00:00 GMT Date::Parse 2010-06-16T07:00:00 DateTime::Format::HTTP 2010-06-16T07:00:00 --- input: Wed, 16 Jun 2010 00:00:00 PDT Date::Parse 2010-06-16T07:00:00 Invalid offset: PDT DateTime::Format::HTTP $
というわけで、Date::Parseを使えばいいってことがわかりました。
なんて言ったところで、僕は日付の形式を見ただけでこれはRFCなんちゃら、とか言いあてられる日付マエストロではないので、毎回試行錯誤することになるのでした。
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/19018/48654111
この記事へのトラックバック一覧です: DateTime::Format::HTTPがPDTのタイムゾーンを食えなかったでござる:






![森田 創: WEB+DB PRESS 総集編 [Vol.1~60]](http://ecx.images-amazon.com/images/I/51aE58LxWlL._SL75_.jpg)
















![: 電子ルーペ ViewPe[ビューペ] 3R-MSV35 マイクロスコープ デジタル顕微鏡 高機能 低価格 読書 植物 研究 肌チェック](http://ecx.images-amazon.com/images/I/41erkiQgAsL._SL75_.jpg)





![: Optimus bright [docomo L-07C] 対応 予備バッテリー 1500mAh BL-44JN](http://ecx.images-amazon.com/images/I/41gjqsDjq%2BL._SL75_.jpg)










![: パンツの穴 [DVD]](http://ecx.images-amazon.com/images/I/21R9SEY1HPL._SL75_.jpg)

















