localtimeConverts a time as returned by the time function to a 9-element listwith the time analyzed for the local time zone. Typically used asfollows:
- # 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 `structtm'. $sec
, $min
, and $hour
are the seconds, minutes, and hoursof the specified time.
$mday
is the day of the month and $mon
the month inthe 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 a 4-digityear 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 indicatingWednesday. $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 SavingTime, false otherwise.
If EXPR is omitted, localtime()
uses the current time (as returnedby time(3)).
In scalar context, localtime()
returns the ctime(3) value:
- $now_string = localtime; # e.g., "Thu Oct 13 04:54:34 1994"
The format of this scalar value is not locale-dependentbut built into Perl. For GMT instead of localtime use the gmtime builtin. See also theTime::Local
module (for converting seconds, minutes, hours, and such back tothe integer value returned by time()), and the POSIX module's strftime(3)and mktime(3) functions.
To get somewhat similar but locale-dependent date strings, set up yourlocale environment variables appropriately (please see perllocale) andtry 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 %a
and %b
, the short forms of the day of the weekand 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 theDateTime module on CPAN.
Portability issues: localtime in perlport.