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なんちゃら、とか言いあてられる日付マエストロではないので、毎回試行錯誤することになるのでした。
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3255





![: Amazon.co.jp: プラスティック・メモリーズ 1【完全生産限定版】(イベントチケット優先販売申込券付) [Blu-ray]](/lists/_9/B00VWX66E8.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 2【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX66K2.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 3【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX6MV0.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 4【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX66IO.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 5【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX6Y0E.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 6【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX69D6.jpg)


コメントする