use DateTime::Format::Strptime; my $Strp1 = DateTime::Format::Strptime::->new( pattern => '%A %B %d %H:%M:%S %Y', locale => 'en_US', on_error => 'croak', ); #YYYY_MM_DD_HH_MM_SS my $Strp2 = DateTime::Format::Strptime::->new( pattern => '%Y_%m_%d_%H_%M_%S', locale => 'en_US', on_error => 'croak', ); my $dt = 'Sat Sep 20 17:44:55 2003'; warn $dt,$/; die $Strp2->format_datetime($Strp1->parse_datetime( $dt )),$/; __END__ Sat Sep 20 17:44:55 2003 2003_09_20_17_44_55