#!usr/bin/perl use say; use strict; use warnings; use DateTime; use DateTime::TimeZone; sub TimeZone { my ($dt) = @_; my $tz = $dt->time_zone(); my $offset = $tz->offset_for_datetime($dt); return $offset; } my $dt = DateTime->new( year => 1964, month => 10, day => 16, hour => 16, minute => 12, second => 47, nanosecond => 500000000, time_zone => 'Asia/Taipei', ); my $tz = DateTime::TimeZone->new( name => 'America/Chicago' ); my $offset = $tz->offset_for_datetime($dt); say TimeZone($dt); say $offset; __END__ $ perl test.pl 28800 -18000