[Chapter 3] 3.2.88 localtime
Author: Larry Wall, Tom Christiansen & Randal L. Schwartz
Date: 1999-07-02T01:51:13Z

#

| Chapter 3 Functions |

### 3.2.88 localtime

    localtime EXPR

This function converts the value returned by time to a nine-element list with the time corrected for the local time zone. It's typically used as follows:

    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
            localtime(time);

All list elements are numeric, and come straight out of a `struct tm`. (That's a bit of C programming lingo - don't worry about it.) In particular this means that `$mon` has the range `0..11`, `$wday` has the range `0..6`, and the year has had 1,900 subtracted from it. (You can remember which ones are 0-based because those are the ones you're always using as subscripts into 0-based arrays containing month and day names.) If `EXPR` is omitted, it does `localtime(time)`. For example, to get the name of the current day of the week:

    $thisday = (Sun,Mon,Tue,Wed,Thu,Fri,Sat)[(localtime)[6]];

The Perl library module Time::Local contains a subroutine, `timelocal()`, that can convert in the opposite direction.

In scalar context, localtime returns a ctime(3)-like string based on the localtime value. For example, the date command can be emulated with:

    perl -e 'print scalar localtime'

See also `POSIX::strftime()` in Chapter 7 for a more fine-grained approach to formatting times.

3.2.87 local |  | 3.2.89 log