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 ...