| Description | A static content generator. |

Newcomen::Util::Time - Date and time related utility functions.

use Newcomen::Util::Time; # Parse a time string: my $time = Newcomen::Util::Time::parse_time ($time, $parse_format, $output_format);

This package provides utility functions dealing with dates and times. Note that all functions may be imported into the package using Newcomen::Util::Time:
use Newcomen::Util::List qw( parse_time );
No function is exported by default.

Toggle source: parse_time
sub parse_time {
my $time = shift;
my $parse = shift;
my $format = shift;
my $piece = Time::Piece -> strptime ($time, $parse);
my $tz_offs = $piece -> localtime -> tzoffset () -> minutes ();
my $tz_sign = $tz_offs < 0 ? '-' : '+';
my $tz_hour = sprintf ('%02d', POSIX::floor (abs ($tz_offs) / 60));
my $tz_min = sprintf ('%02d', abs ($tz_offs) - $tz_hour * 60);
my $result = {
'year' => $piece -> year (),
'month' => $piece -> mon (),
'day' => $piece -> mday (),
'hour' => $piece -> hour (),
'minute' => $piece -> min (),
'second' => $piece -> sec (),
'day_of_week' => $piece -> day_of_week (),
'day_of_year' => $piece -> day_of_year (),
'week' => $piece -> week (),
'month_short' => $piece -> monname (),
'month_name' => $piece -> fullmonth (),
'day_short' => $piece -> wdayname (),
'day_name' => $piece -> fullday (),
'is_dst' => $piece -> isdst (),
'epoch' => $piece -> epoch (),
'iso' => $piece -> datetime (),
'offset' => "$tz_sign$tz_hour:$tz_min",
'Month' => sprintf ('%02d', $piece -> mon ()),
'Day' => sprintf ('%02d', $piece -> mday ()),
'Hour' => sprintf ('%02d', $piece -> hour ()),
'Minute' => sprintf ('%02d', $piece -> min ()),
'Second' => sprintf ('%02d', $piece -> sec ()),
};
$result -> {'string'} = $piece -> strftime ($format) if $format;
return $result;
}my $time = parse_time ($time, $parse_format, $output_format);
Expects three parameters: the first one has to be the string to be parsed, the second one the time format specification to be used for parsing the string (see Time::Piece's strptime() method, which is used to parse the string, for more details). The third parameter is optional. If it is provided, it is used as date format specification for Time::Piece's strftime() method, and the result of this is included in the return values.
The function returns a hashref that contains information about the parsed date/time. The keys are:
year, month, day, hour, minute, second, day_of_week, day_of_year, week,
month_name, month_short, day_name, day_short, is_dst, epoch, iso, Day,
Month, Hour, Minute, Second. The values for the keys starting with a capital letter will
include a leading zero for values less than ten. The *_short values will contain the abbreviated
names, while *_name values will be full names. If the third parameter is used, the value of the
reformatted date/time will be available under the key string, otherwise this key is omitted. The
key offset will contain the timezone offset in the format <+/-><hours>:<minutes>, e.g.
'+04:00', for the local timezone to GMT.


This is version 2014052501.

Stefan Goebel - newcomen {at} subtype {dot} de

Copyright 2013-2014 Stefan Goebel.
This file is part of Newcomen.
Newcomen is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the license, or (at your option) any later version.
Newcomen is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Newcomen. If not, see <http://www.gnu.org/licenses/>.