从这个答案中,我DateTime::Format::Strptime用来从字符串中获取日期。
我正在使用以下模式:%m%d%Y%n%T. 这应该是匹配的:
%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] 它失败并出现错误:
您的日期时间与您的模式不匹配
据我所见,我的模式与输入模式匹配。我哪里错了?
相关代码如下:
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);
输出:
日期:[05/18/2011 14:14:05]
您的日期时间与您的模式不匹配