2011-10-11 85 views

回答

16

使用Time::Local,你可以这样做:

use Time::Local; 

my $date = '23.10.2011 11:35:00'; 
my ($mday,$mon,$year,$hour,$min,$sec) = split(/[\s.:]+/, $date); 
my $time = timelocal($sec,$min,$hour,$mday,$mon-1,$year); 
print $time,"\n",scalar localtime $time; 

输出:

1319362500 
Sun Oct 23 11:35:00 2011 
16

我想看看DateTimeparsing modules

perl -MDateTime::Format::Strptime -le'$strp = DateTime::Format::Strptime->new(pattern => "%d.%m.%Y %T", time_zone => "local"); $dt = $strp->parse_datetime("23.10.2011 11:35:00"); print $dt->epoch' 
1319384100 at -e line 1. 

与上面相同,但不是一个班轮:

use DateTime::Format::Strptime; 
my $strp = DateTime::Format::Strptime->new(
    pattern => '%d.%m.%Y %T', 
    time_zone => 'local', 
); 
my $dt = $strp->parse_datetime('23.10.2011 11:35:00'); 
print $dt->epoch;