my $t = Time::Piece->strptime("Sun 3rd Nov, 1943", "%A %drd %b, %Y"); print $t->strftime("%a, %d %b %Y"); Outputs: Wed, 03 Nov 1943 (see, it's even smart enough to fix my obvious date bug)