一種選擇是使用正則表達式解析數字,然後使用Time::Local。然而,現在我明白你的問題是如何從一個strftime
格式化字符串到一般的時間,這種方法肯定會很麻煩。
你在你的回答POSIX::strptime
中提到,如果你的平臺支持它,這是很棒的。另外,您也可以使用DateTime::Format::Strptime:
#!/usr/bin/perl
use strict;
use warnings;
use DateTime::Format::Strptime;
use POSIX qw(strftime);
my $f = "%YT%mT%d TTTT%H:%M:%S";
my $s = strftime($f, localtime);
print "$s\n";
my $Strp = DateTime::Format::Strptime->new(
pattern => $f,
locale => 'en_US',
time_zone => 'US/Eastern',
);
my $dt = $Strp->parse_datetime($s);
print $dt->epoch, "\n";
print scalar localtime $dt->epoch, "\n";
$dt
是DateTime對象,所以你可以做幾乎任何你想用它。
等待,我也很快地回答。你的意思是,你想要的字符串**'2009-08-14 00:37:02' **或自紀元以來的秒數? – 2009-08-13 21:53:27
我想從字符串2009T08T14 TTTT00:37:02獲取時間,以便將其與「有效」時間戳進行比較。 – Markus 2009-08-13 21:55:39