My first (and usually last) stop for all date parsing is DateTime::Format::Flexible. It gets this one just fine:
use DateTime::Format::Flexible;
sub date { DateTime::Format::Flexible->parse_datetime(shift); }
my $d= date('Sat Jun 4 22:47:31 2022');
$d->set_time_zone('+0200')->set_time_zone('UTC');
print "$d\n";