読者です 読者をやめる 読者になる 読者になる

PerlでRFC2822形式の日時をUNIXタイムスタンプにする方法

調べても見つからなかったから、書いてみた。
PHPならstrtotimeで済むんだけど。

use DateTime::Format::Mail;
use Time::Local;

my $date = "Thu, 14 Feb 2008 19:14:01 +0900";
   $date =~ s/\(.*//; # 最後に(JST)などがついている時のための対策

my $datetime = DateTime::Format::Mail->parse_datetime($date);

my $year  = substr($datetime,0,4);
my $mon   = int(substr($datetime,5,2));
my $mday  = int(substr($datetime,8,2));
my $hours = int(substr($datetime,11,2));
my $min   = int(substr($datetime,14,2));
my $sec   = int(substr($datetime,17,2));

my $time  = timelocal($sec,$min,$hours,$mday,$mon - 1,$year);

DateTime::Format::Mailの使い方はこれで正しいのだろうか。