#!/usr/bin/perl use warnings; use strict; use Time::Piece; $ENV{TZ} = 'Europe/Berlin'; print 'Time::Piece'->VERSION, " $]\n"; for my $ts (qw( 2016-09-25 2016-10-31 )) { $_ = $ts . 'T12:00:00'; my $datetime = 'Time::Piece'->strptime($_, '%Y-%m-%dT%H:%M:%S'); my $utc_offset = $datetime->strftime('%z'); chomp( my $system_offset = qx{ date +%z -d $_ } ); printf "%s - %s - %s - %s\n", $datetime, $utc_offset, $system_offset, $datetime->tzoffset; } __END__ 1.20_01 5.018002 Sun Sep 25 12:00:00 2016 - +0100 - +0200 - 0 Mon Oct 31 12:00:00 2016 - +0100 - +0100 - 0 1.31 5.025007 Sun Sep 25 12:00:00 2016 - +0000 - +0200 - 0 Mon Oct 31 12:00:00 2016 - +0000 - +0100 - 0