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:
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:
$year
contains the number of years since 1900. To get a 4-digit
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 during Daylight Saving
Time, false otherwise.
If EXPR is omitted, localtime uses the current time (as returned by time).
In scalar context, localtime returns the ctime(3) value:
The format of this scalar value is not locale-dependent but built into Perl. 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 strftime and mktime functions.
To get somewhat similar but locale-dependent date strings, set up your locale environment variables appropriately (please see perllocale) and try for example:
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.
Portability issues: localtime in perlport.