http://www.perlmonks.org?node_id=1199321


in reply to Convert GMT date and time to local time

Hello Anonymous Monk,

Fellow Monk haukex, has already answered your question but since you mentioned the module Date::Manip here are some examples:

#!/usr/bin/perl use strict; use warnings; use Date::Manip; use feature 'say'; say "PARSING A DATE:"; my $date; say $date = ParseDate("today"); say $date = ParseDate("1st Thursday in June 1992"); say $date = ParseDate("05/10/93"); say $date = ParseDate("12:30 Dec 12th 1880"); say $date = ParseDate("8:00pm December tenth"); say ""; say "PARSING AN AMOUNT OF TIME:"; my $delta; say $delta = ParseDateDelta("in 12 hours"); say $delta = ParseDateDelta("-1:30:0"); say $delta = ParseDateDelta("4 business days later"); __END__ $ perl test.pl PARSING A DATE: 2017091300:00:00 1992060400:00:00 1993051000:00:00 1880121212:30:00 2017121020:00:00 PARSING AN AMOUNT OF TIME: 0:0:0:0:12:0:0 0:0:0:0:-1:30:0 0:0:0:4:0:0:0

You can find plenty of examples in the Date::Manip::Examples.

Update: Very nice explanation with examples of the module Date::Manip - date manipulation routines.

Update2: I think this is what you are looking for:

#!/usr/bin/perl use strict; use warnings; use Date::Manip; use feature 'say'; my $tz = new Date::Manip::TZ; my $dateLocal = ParseDate('now'); say $dateLocal; # From timeZone To timeZone my $dateTimeZone = Date_ConvTZ($dateLocal,"GMT","CST"); my $unixLocal = UnixDate($dateLocal,'%Y-%m-%d-%H-%M-%S'); say $unixLocal; my $unixTimeZone = UnixDate($dateTimeZone,'%Y-%m-%d-%H-%M-%S'); say $unixTimeZone; __END__ $ perl test.pl 2017091400:41:59 2017-09-14-00-41-59 2017-09-14-08-41-59

Relevant question convert GMT to other time zone using Date::Manip, and more information Date::Manip - Date manipulation routines.

Time zone abbreviations Time Zone Abbreviations – Worldwide List.

Hope this helps, BR.

Seeking for Perl wisdom...on the process of learning...not there...yet!