Использование ядра Время :: Кусок :
use strict;
use warnings;
use Time::Piece;
# Microseconds since Epoch
my $usec = 555329743301750;
# Convert to seconds
my $sec = $usec/1000000;
my $offset = localtime($sec)->tzoffset / 3600;
Time :: Moment и DateTime также могут возвращать это значение, если вы построите их так, как я показал на ваш другой вопрос .
my $offset = $time_moment->offset / 60;
my $offset = $datetime->offset / 3600;
Вы также можете создавать эти объекты из дат, но это, конечно, даст вам смещение в полночь (местное время) в этот день.
use Time::Piece;
my $time = localtime->strptime('20190514', '%Y%m%d');
use Time::Moment;
use Role::Tiny ();
my $class = Role::Tiny->create_class_with_roles('Time::Moment', 'Time::Moment::Role::TimeZone');
my $time = $class->new(year => 2019, month => 5, day => 14)->with_system_offset_same_local;
use DateTime;
my $time = DateTime->new(year => 2019, month => 5, day => 14, time_zone => 'local');