在Perl中,为什么我从parsedate(2010-7-2 13:0:0)和parsedate(2010-7-2 13:00:0)得到不同的结果?
发布于 2010-08-05 09:20:50
2010-7-2 13:0:0字符串的格式无效,并且实际上根本没有被解析(看起来是这样),parsedate("2010-7-2")为我返回与parsedate("2010-7-2 13:0:0")相同的值就证明了这一点。
基于the docs,它只是解析YYYY-MM-DD,而根本不解析13:0:0,因为它期望它是HH:MM格式,而不是HH:M格式。基本上,您必须使用两位数作为分钟,才能使其成为有效的输入。
发布于 2015-08-15 13:57:02
要更灵活地处理日期格式,请尝试使用DateTime:: format ::Strptime
my $strp = DateTime::Format::Strptime->new(
pattern => '%Y-%m-%d %T',
locale => 'en_AU',
time_zone => 'Australia/Melbourne',
);
my $dt1 = $strp->parse_datetime('2010-7-2 13:0:0');
my $date_1 = $strp->format_datetime($dt1);$date_1现在被转换为格式良好的日期格式"2010-07-02 13:00:00“。然后,您可以调用parsedate($date_1) & get epoch。
https://stackoverflow.com/questions/3411024
复制相似问题