• TUX



Perl 5 version 8.8 documentation
Recently read


  • gmtime EXPR

  • gmtime

    Converts a time as returned by the time function to an 9-element list with the time localized for the standard Greenwich time zone. Typically used as follows:

    1. # 0 1 2 3 4 5 6 7 8
    2. ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
    3. gmtime(time);

    All list elements are numeric, and come straight out of the C `struct tm'. $sec, $min, and $hour are the seconds, minutes, and hours of the specified time. $mday is the day of the month, and $mon is the month itself, in the range 0..11 with 0 indicating January and 11 indicating December. $year is the number of years since 1900. That is, $year is 123 in year 2023. $wday is the day of the week, with 0 indicating Sunday and 3 indicating Wednesday. $yday is the day of the year, in the range 0..364 (or 0..365 in leap years). $isdst is always 0 .

    Note that the $year element is not simply the last two digits of the year. If you assume it is then you create non-Y2K-compliant programs--and you wouldn't want to do that, would you?

    The proper way to get a complete 4-digit year is simply:

    1. $year += 1900;

    And to get the last two digits of the year (e.g., '01' in 2001) do:

    1. $year = sprintf("%02d", $year % 100);

    If EXPR is omitted, gmtime() uses the current time (gmtime(time)).

    In scalar context, gmtime() returns the ctime(3) value:

    1. $now_string = gmtime; # e.g., "Thu Oct 13 04:54:34 1994"

    If you need local time instead of GMT use the localtime builtin. See also the timegm function provided by the Time::Local module, and the strftime(3) and mktime(3) functions available via the POSIX module.

    This scalar value is not locale dependent (see perllocale), but is instead a Perl builtin. To get somewhat similar but locale dependent date strings, see the example in localtime.

    See gmtime in perlport for portability concerns.