=over =item localtime EXPR X X =item localtime 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 tm'. C<$sec>, C<$min>, and C<$hour> are the seconds, minutes, and hours of the specified time. C<$mday> is the day of the month, and C<$mon> is the month itself, in the range C<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" C<$year> is the number of years since 1900, not just the last two digits of the year. That is, C<$year> is C<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); C<$wday> is the day of the week, with 0 indicating Sunday and 3 indicating Wednesday. C<$yday> is the day of the year, in the range C<0..364> (or C<0..365> in leap years.) C<$isdst> is true if the specified time occurs during Daylight Saving Time, false otherwise. If EXPR is omitted, C uses the current time (as returned by time(3)). In scalar context, C returns the ctime(3) value: $now_string = localtime; # e.g., "Thu Oct 13 04:54:34 1994" This scalar value is B locale dependent but is a Perl builtin. For GMT instead of local time use the L builtin. See also the C module (to convert the second, minutes, hours, ... back to the integer value returned by time()), and the L 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 L) 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 C<%a> and C<%b>, the short forms of the day of the week and the month of the year, may not necessarily be three characters wide. See L for portability concerns. The L and L 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 L module on CPAN. =back