perl - formatting DateTime output

前端 未结 3 1549
北荒
北荒 2021-01-05 02:13

How do I convert my return using DateTime from:

This is my date:2011-11-26T20:11:06 to This is my date:20111126

Using this existin

3条回答
  •  滥情空心
    2021-01-05 02:31

    There are about a dozen ways to process dates in Perl. However, if you know the format of the date string, there maybe no reason to call a datetime module:

    $dt3 =~ /^(\d+)-(\d+)-(\d+)/;
    print "This is my date:${1}${2}${3}\n";
    

    I'm not familiar with DateTime, but I'd be surprised if there wasn't a way to format the data when you display it.

    I personally prefer Time::Piece and Time::Seconds for these things. These modules have been part of the standard Perl installation since 5.10. Plus, I find the interface to be fairly simple and clean.

    use Time::Piece;
    use Time::Seconds;
    
    my $time = localtime;
    $time -= ONE_DAY;
    
    print "This is my date:" . $time->ymd("");
    

    For some reason, you can't say $time = localtime - ONE_DAY; on the same line. I guess you need to create the Time::Piece object first before you can manipulating them with the Time::Second constants.

提交回复
热议问题