从这个答案中,我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]
您的日期时间与您的模式不匹配