use DateTime; my $time = DateTime->now( time_zone => 'America/New_York' ); $time->set_time_zone( 'Australia/South' ); print "$time\n"; #### my $time = DateTime->new( year => 2007, month => 12, day => 28, hour => 18, minute => 30, second => 0, time_zone => 'America/New_York', ); #### [jason@critter ~ 0]$ date Fri Dec 28 13:24:04 EST 2007 # oops, there are two ESTs, one at -0500 and one at +1000/+1100, which one is it? [jason@critter ~ 0]$ ls -l /etc/localtime lrwxr-xr-x 1 root wheel 30 Dec 5 12:06 /etc/localtime@ -> /usr/share/zoneinfo/US/Eastern