use HTTP::Date qw( time2iso str2time ); my $original = '20100302165019'; my ($year, $month, $day) = $original =~ m{^(\d{4})(\d{2})(\d{2})}; my $time = str2time("$year\-$month\-$day"); my $localtime = localtime( $time ); my $isodate = time2iso($time); print "Localtime: '$localtime'\n"; print "ISO Date: '$isodate'\n";