2016-08-05 26 views
0

如何使用perl将02/01/1999更改为1999-02-01?我试过这个,但它是返回日期是-00-00将日期的格式从mm/dd/yyyy更改为yyyy-mm-dd

sub changeDate{ 
    my $date = shift; 
    my @adate=split (/\//, $date); 
    my $ndate=$adate[2]."-".sprintf("%02d", $adate[1])."-".sprintf("%02d",$adate[0]); 
    say "DATE IS $ndate"; 
    return $ndate; 
} 

回答

0

你有什么是正确的。

$ perl -e' 
    use feature qw(say); 

    sub changeDate{ 
     my $date = shift; 
     my @adate=split (/\//, $date); 
     my $ndate=$adate[2]."-".sprintf("%02d", $adate[1])."-".sprintf("%02d",$adate[0]); 
     return $ndate; 
    } 

    say changeDate("02/01/1999"); 
' 
1999-01-02 

你一定是经过了比其他02/01/1999东西changeDate

注意changeDate可以降低到以下几点:

sub changeDate { sprintf '%3$d-%1$02d-%2$02d', split /\//, shift } 
+1

是的,我发现了问题,我被错误地调用子 – jreed21

相关问题