Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Add leading zeros to days/months in dates while parsing CSV

by runrig (Abbot)
on Jun 14, 2016 at 16:12 UTC ( #1165614=note: print w/replies, xml ) Need Help??


in reply to Add leading zeros to days/months in dates while parsing CSV

I like to validate the format as long as I'm re-formatting (note this does not actually completely validate the dates, see what happens to some invalid end of month dates below):
use Time::Piece; my @have = ('1/2/2003', '2/31/2014', '4/31/2015', '4/5/2006', '10/11/2 +012'); for my $dt (@have) { my $d = eval { Time::Piece->strptime($dt, '%m/%d/%Y') } or warn "Inv +alid date $dt\n"; next unless $d; my $ymd = $d->ymd(); print "$dt => $ymd\n"; }
DateTime will validate the date more completely:
use strict; use warnings; use DateTime::Format::Strptime; my $f = DateTime::Format::Strptime->new( pattern => '%m/%d/%Y', ); my @have = ('1/2/2003', '2/32/2013', '4/31/2014', '4/5/2006', '10/11/2 +012'); for my $dt (@have) { my $d = $f->parse_datetime($dt) or warn "Invalid date $dt\n"; next unless $d; my $ymd = $d->ymd(); print "$dt => $ymd\n"; }

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1165614]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (2)
As of 2019-04-26 07:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I am most likely to install a new module from CPAN if:
















    Results (128 votes). Check out past polls.

    Notices?
    • (Sep 10, 2018 at 22:53 UTC) Welcome new users!