Converting Epoch Seconds to DMYHMS
Problem
You have a date and time in Epoch seconds, and you want to calculate individual DMYHMS values from it.
Solution
Use the localtime
or gmtime
functions, depending on whether you want
the date and time in GMT or your local time zone.
($seconds, $minutes, $hours, $day_of_month, $month, $year, $wday, $yday, $isdst) = localtime($time);
The standard
Time::timelocal and Time::gmtime
modules override the localtime
and
gmtime
functions to provide named access to the
individual values.
use Time::localtime; # or Time::gmtime $tm = localtime($TIME); # or gmtime($TIME) $seconds = $tm->sec; # ...
Discussion
The localtime
and gmtime
functions return strange year and month values; the year has 1900
subtracted from it, and
is the month value for January. Be sure to correct the base values
for year and month, as this example does:
($seconds, $minutes, $hours, $day_of_month, $month, $year, $wday, $yday, $isdst) = localtime($time); printf("Dateline: %02d:%02d:%02d-%04d/%02d/%02d\n", $hours, $minutes, $seconds, $year+1900, $month+1, $day_of_month);
We could have used the Time::localtime module to avoid the temporary variables:
use Time::localtime; $tm = localtime($time); printf("Dateline: %02d:%02d:%02d-%04d/%02d/%02d\n", $tm->hour, $tm->min, $tm->sec, $tm->year+1900, $tm->mon+1, $tm->mday);
See Also
The
localtime
function in
perlfunc(1) and Chapter 3 of
Programming Perl; the documentation for the standard Time::localtime and Time::gmtime modules; convert in ...
Get Perl Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.