2
從this answer開始,我使用DateTime::Format::Strptime
從字符串中獲取日期。使用DateTime :: Format :: Strptime將字符串轉換爲日期
我使用的下列模式是:%m%d%Y%n%T
。這should be matching:
%m
:月份數(01-12)。這也將解析單個數字的數字。%d
:月份的一天(01-31)。這也將解析單個數字的數字。%Y
:今年,包括世紀(例如,1991年)。%n
:任意空白。%T
:相當於%H:%M:%S
:%H
:時間(00-23)。這也將解析單個數字的數字。%M
:分鐘(00-59)。這也將解析單個數字的數字。%S
:第二個(0-60; 60可能發生閏秒,見DateTime::LeapSecond
)。
然而,輸入:05/18/2011 14:14:05
]它的失敗與錯誤:
Your datetime does not match your pattern
據我所看到的,我的模式輸入模式相匹配。我哪裏錯了?
相關代碼如下:
use DateTime::Format::Strptime qw();
my $format = DateTime::Format::Strptime->new(
pattern => '%m%d%Y%n%T',
time_zone => 'local',
on_error => 'croak',
);
my $dt = $fields->[1] ;
print "Date:[$dt]\n";
my $dateopen = $format->parse_datetime($dt);
輸出:
Date:[05/18/2011 14:14:05]
Your datetime does not match your pattern