Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Convert GMT date and time to local time

by Anonymous Monk
on Sep 13, 2017 at 09:14 UTC ( #1199280=perlquestion: print w/replies, xml ) Need Help??
Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hello,
I would like to find out the local time (wall clock time, i.e. accounting for daylight saving time periods) starting from a GMT time. I made several attempts with Date::Manip but I did not find a way...
use strict; use Date::Manip; my $dt = new Date::Manip::Date; my $datestr = "2016-07-30-15:30:00 GMT"; $dt->parse($datestr); # Print date in local time, if I knew how to do that...
Thanks!

Replies are listed 'Best First'.
Re: Convert GMT date and time to local time
by haukex (Abbot) on Sep 13, 2017 at 09:33 UTC

    Does it have to be Date::Manip? I prefer DateTime, it has excellent time zone handling and everything else regarding date/time handling, also via add-ons like for example DateTime::Format::Strptime.

    use warnings; use strict; use DateTime; use DateTime::Format::Strptime; my $strp = DateTime::Format::Strptime->new(on_error=>'croak', pattern => '%Y-%m-%d-%H:%M:%S %Z'); my $datestr = "2016-07-30-15:30:00 GMT"; my $dt = $strp->parse_datetime($datestr); print $dt->strftime('%Y-%m-%d-%H:%M:%S %Z'), "\n"; $dt->set_time_zone('America/Los_Angeles'); print $dt->strftime('%Y-%m-%d-%H:%M:%S %Z'), "\n"; __END__ 2016-07-30-15:30:00 UTC 2016-07-30-08:30:00 PDT
      Thanks! It does the job as I needed. The Date::Manip documentation was a nightmare for me.
Re: Convert GMT date and time to local time (UPDATED)
by thanos1983 (Priest) on Sep 13, 2017 at 15:00 UTC

    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!
Re: Convert GMT date and time to local time
by Anonymous Monk on Sep 13, 2017 at 09:22 UTC
    I forgot to say that I would like to convert it to the local time of a time zone I can specify, for example local time in Seattle.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1199280]
Front-paged by Corion
help
Chatterbox?
[ambrus]: the annotation mentions Brisbane as even worse, and I add Debrecen
[marto]: :)
[ambrus]: robby: dunno, I would like to visit London some time, although there are other places I'd like to visit more
[marto]: "Okay, sure, there are in fact museums and art galleries and other culturally enlightened things to do in Glasgow, but that wouldn't have made a funny comic"
LanX .oO( cemetery breweries ? )

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (7)
As of 2017-12-15 11:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What programming language do you hate the most?




















    Results (431 votes). Check out past polls.

    Notices?