The localtime Function
When you have a timestamp number (such as the ones from
stat), it will typically look
something like 1180630098. That’s not
very useful for most humans, unless you need to compare two timestamps
by subtracting. You may need to convert it to something human-readable,
such as a string like Thu May 31 09:48:18
2007. Perl can do that with the localtime function in a scalar context:
my $timestamp = 1180630098; my $date = localtime $timestamp;
In a list context, localtime
returns a list of numbers, several of which may not be quite what you’d
expect:
my($sec, $min, $hour, $day, $mon, $year, $wday, $yday, $isdst) = localtime $timestamp;
The $mon is a month number,
ranging from 0 to 11, which is handy as an index into an array
of month names. The $year is the
number of years since 1900, oddly enough, so add 1900 to get the real year number. The $wday ranges from 0 (for Sunday) through 6 (for Saturday), and the $yday is the day-of-the-year (ranging from 0
for January 1, through 364 or 365 for December 31).
There are two related functions that you’ll also find useful.
The gmtime function is
just the same as localtime, except
that it returns the time in Universal Time (what we once called Greenwich Mean Time).
If you need the current timestamp number from the system clock, just use
the time function. Both
localtime and gmtime default to using the current time value if you don’t supply a
parameter:
my $now = gmtime; # Get the current universal timestamp as a string
For more ...