|Perl Language Reference Manual|
by Larry Wall and others
Paperback (6"x9"), 724 pages
RRP £29.95 ($39.95)
Sales of this book support The Perl Foundation! Get a printed copy>>>
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 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
All list elements are numeric, and come straight out of the C `struct
$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
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 is the number of years since 1900, not just the last two digits
of the year. That is,
123 in year 2023. The proper way
to get a 4-digit year is simply:
$year += 1900;
Otherwise you create non-Y2K-compliant programs--and you wouldn't want to do that, would you?
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
$yday is the day of the year, in the range
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
In scalar context,
localtime() returns the ctime(3) value:
$now_string = localtime; # e.g., "Thu Oct 13 04:54:34 1994"
This scalar value is not locale dependent but is a Perl builtin. For GMT
instead of local time use the builtin. See also the
Time::Local module (to convert the second, minutes, hours, ... back to
the integer value returned by time()), and the "Perl interface to IEEE Std 1003.1" (POSIX) in the Perl Library Reference Manual (Volume 3) module's strftime(3)
and mktime(3) functions.
To get somewhat similar but locale dependent date strings, set up your locale environment variables appropriately (please see "Perl locale handling (internationalization and localization)" (perllocale) in the Perl Unicode and Locales Manual) and try for example:
use POSIX qw(strftime); $now_string = strftime "%a %b %e %H:%M:%S %Y", localtime; # or for GMT formatted appropriately for your locale: $now_string = strftime "%a %b %e %H:%M:%S %Y", gmtime;
Note that the
%b, the short forms of the day of the week
and the month of the year, may not necessarily be three characters wide.
See 28.4.1 for portability concerns.
The Time::gmtime and Time::localtime modules provides 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.
|ISBN 9781906966027||Perl Language Reference Manual||See the print edition|