Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

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

by runrig (Abbot)
on Jun 14, 2016 at 16:12 UTC ( [id://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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1165614]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (6)
As of 2024-04-19 14:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found