gmtime
gmtime EXPR
gmtimeThis function converts a time as returned by the time function to a nine-element list with the
time correct for what was historically called Greenwich Mean Time (GMT),
but which is now known as Coordinated Universal Time (UTC). It’s typically used as
follows:
# 0 1 2 3 4 5 6 7 8 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime;
If as here the EXPR is omitted, it does
gmtime(time()). The Perl library
module Time::Local contains a subroutine, timegm, that can convert the list back into a
time value.
All list elements are numeric and come straight out of a struct tm (that’s a C programming
structure—don’t sweat it). In particular, this means that $mon has the range 0..11, with January as month
0, and $wday has
the range 0..6, with Sunday as day
0. You can remember which ones are
zero-based because those are the ones you’re always using as subscripts
into zero-based arrays containing month and day names.
For example, to get the current month in London, you might say:
$london_month = (qw(Jan Feb Mar Apr May Jun
Jul Aug Sep Oct Nov Dec))[(gmtime)[4]];$year is the number of years
since 1900; that is, in year 2023, $year is 123, not simply 23. To get the four-digit year, just say
$year + 1900. To get the two-digit
year (for example “01” in 2001), use sprintf("%02d", $year % 100).
In scalar context, gmtime
returns a ctime(3)-like string based on the GMT
time value. The Time::gmtime module supports a by-name interface to this function. See
also POSIX::strftime ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access