my $str = '2017-01-29 11:30:07.370'; $parser = DateTime::Format::Strptime->new( pattern => '%F %T.%3N' ); if ( my $dt = $parser->parse_datetime( $str ) ) { say "Interestingly, $str falls on a " . $dt->day_name; } else { say "$str is not a valid date"; }