localtime EXPR
localtime

Converts a time as returned by the time function to a 9-element list with the time analyzed for the local time zone. Typically used as follows:

``````#     0    1    2     3     4    5     6     7     8
my (\$sec,\$min,\$hour,\$mday,\$mon,\$year,\$wday,\$yday,\$isdst) =
localtime(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` the month in the range `0..11`, with 0 indicating January and 11 indicating December. This makes it easy to get a month name from a list:

``````my @abbr = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
print "\$abbr[\$mon] \$mday";
# \$mon=9, \$mday=18 gives "Oct 18"``````

`\$year` contains the number of years since 1900. To get the full year write:

``\$year += 1900;``

To get the last two digits of the year (e.g., "01" in 2001) do:

``\$year = sprintf("%02d", \$year % 100);``

`\$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 true if the specified time occurs when Daylight Saving Time is in effect, false otherwise.

If EXPR is omitted, `localtime` uses the current time (as returned by `time`).

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

``my \$now_string = localtime;  # e.g., "Thu Oct 13 04:54:34 1994"``

This scalar value is always in English, and is not locale-dependent. To get similar but locale-dependent date strings, try for example:

``````use POSIX qw(strftime);
my \$now_string = strftime "%a %b %e %H:%M:%S %Y", localtime;
# or for GMT formatted appropriately for your locale:
my \$now_string = strftime "%a %b %e %H:%M:%S %Y", gmtime;``````

`\$now_string` will be formatted according to the current LC_TIME locale the program or thread is running in. See perllocale for how to set up and change that locale. Note that `%a` and `%b`, the short forms of the day of the week and the month of the year, may not necessarily be three characters wide.

The Time::gmtime and Time::localtime modules provide a convenient, by-name access mechanism to the `gmtime` and `localtime` functions, respectively.

For a comprehensive date and time representation look at the DateTime module on CPAN.

For GMT instead of local time use the `gmtime` builtin.

See also the `Time::Local` module (for converting seconds, minutes, hours, and such back to the integer value returned by `time`), and the POSIX module's `mktime` function.

Portability issues: "localtime" in perlport.