#!/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!
|