use DateTime qw( ); use DateTime::TimeZone qw( ); my $old_tz = DateTime::TimeZone->new( name => "+0100" ); my $new_tz = DateTime::TimeZone->new( name => "Europe/Rome" ); for my $date ( [ 2020, 12, 2, 1, 0 ], [ 2021, 7, 2, 1, 0 ], ) { my $dt = DateTime->new( year => => $date->[0], month => $date->[1], day => $date->[2], hour => $date->[3], minute => $date->[4], time_zone => $old_tz, ); say $dt->strftime("%FT%T%z"); $dt->set_time_zone($new_tz); say $dt->strftime("%FT%T%z"); }