我需要帮助更改日期格式并添加日期。现在的日期是MMYY(0919),我需要它是YYYY-MM-DD(2019-09-01),当天总是01.任何帮助都将不胜感激!
答案 0 :(得分:3)
如果日期始终在21世纪,那么您可以使用简单的正则表达式替换,例如
use strict;
use warnings 'all';
use feature 'say';
say convert_date('0919');
sub convert_date {
(my $yyyymmdd = shift) =~ s/(\d\d)(\d\d)/20$2-$1-01/;
$yyyymmdd;
}
2019-09-01
如果您运行的是Perl v 5.14或更高版本,可能会缩写,如此
sub convert_date {
shift =~ s/(\d\d)(\d\d)/20$2-$1-01/r;
}
答案 1 :(得分:0)
我建议使用优秀的https://metacpan.org/pod/DateTime。如果您需要进一步计算日期,那将非常轻松。
use DateTime::Format::Strptime;
my $mmyydd = '0919' . '01';
print DateTime::Format::Strptime
->new(pattern => '%m%y%d')
->parse_datetime($mmyydd)
->ymd;
输出: 2019年9月1日
答案 2 :(得分:0)
不需要DateTime。自2007年以来,Time::Piece已包含在标准Perl发行版中。
$ perl -MTime::Piece -E'say Time::Piece->strptime("0919", "%m%y")->ymd'
2019-09-01