http://qs321.pair.com?node_id=1157182

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hi there Monks!

I am getting an error I cant understand, here:
#!/usr/bin/perl use warnings; use strict; use Time::Piece; my $t = Time::Piece->new(); my $date = $t->strptime(sprintf("%02d",$t->mon).$t->day_of_month.$t->y +ear, '%m%d%Y'); print"\n $date\n";
Error: Error parsing time at /usr/lib/perl/5.18/Time/Piece.pm

Any suggestions, I know it has to do with the "$t->year" part, just dont know how to get it to work.

Thanks for helping!

Replies are listed 'Best First'.
Re: Time Piece Error Parsing
by runrig (Abbot) on Mar 09, 2016 at 16:42 UTC
    Today is the 9th. If you're going to mash digits together without delimiters, the month AND the day of month each need to be 2 digits.
      Interesting, so this should work even if the month has two digits.:
      $date = $t->strptime(sprintf("%02d",$t->mon).sprintf("%02d",$t->day_of +_month).$t->year, '%m%d%Y');
        Alternatively:
        $date = $t->strptime(sprintf("%02d%02d%04d",$t->mon,$t->day_of_month,$ +t->year), '%m%d%Y');
Re: Time Piece Error Parsing
by poj (Abbot) on Mar 09, 2016 at 17:03 UTC

    Why strptime ? Try using strftime

    my $date = $t->strftime('%m%d%Y');