我正在尝试使用Time::Piece模块将日期从yymmdd
转换为YYYY-MM-DD
。输入为Nov 31, 2000 (20001131)
时,输出为2000-12-01
。实际上,Nov 31
甚至不存在。
use Time::Piece;
my $dt_str = Time::Piece->strptime('20001131', '%Y%m%d')->strftime('%Y-%m-%d');
print $dt_str;
我在这里错过了什么吗?
答案 0 :(得分:1)
在内部,它只进行粗略的验证和错误报告,然后执行与POSIX :: mktime相同的转换;超过一个月结束的任何日子只会使它将生产日期提前到下个月。这似乎有点不一致;因为它允许这几天,我也希望它将'20005931'视为'2004-12-01',但它错误了。