Perl Programming Documentation
Download Perl
Explore

Manual

- Overview
- Tutorials
- FAQs
- History / Changes
- License

Reference

- Language
- Functions
- Operators
- Special Variables
- Pragmas
- Utilities
- Internals
- Platform Specific

Modules

- A • B • C • D • E
- F • G • H • I • L
- M • N • O • P • S
- T • U • X

Tools

- Preferences

# localtime

Perl 5 version 16.0 documentation
Go to top
Show recent pages
Recently read

# localtime

Perl functions A-Z | Perl functions by category | The 'perlfunc' manpage

- localtime EXPR

- 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'. `$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:

          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-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(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-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(3) and mktime(3) functions.

  To get somewhat similar but locale-dependent date strings, set up your locale environment variables appropriately (please see perllocale) 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 `%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.