Movatterモバイル変換


[0]ホーム

URL:


functions /localtime
(source,CPAN)
You are viewing the version of this documentation from Perl 5.41.12. This is a development version of Perl.
#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. If EXPR is omitted,localtime uses the current time (as returned bytime).

Typically used as follows:

#     0    1    2     3     4    5     6     7     8my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =                                            localtime(time);

All list elements are numeric and come straight out of the Cstruct tm.$sec,$min, and$hour are the seconds, minutes, and hours of the specified time.

$mday is the day of the month in the range1..31 (i.e. 1-based).$mon is the month in the range0..11 (i.e. 0-based), 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 (e.g.129 for 2029).

$wday is the day of the week, with 0 indicating Sunday and 3 indicating Wednesday.$yday is the day of the year, in the range0..364 (or0..365 in leap years.)

$isdst is true if the specified time occurs when Daylight Saving Time is in effect, false otherwise.

To get a human-readable date/time string, use"strftime" in POSIX:

use POSIX qw(strftime);my @now = localtime;my $now_string = strftime "%Y-%m-%d %H:%M:%S", @now;# e.g. "2025-11-29 15:19:02"

To get just the year, you can use either"strftime" in POSIX:

use POSIX qw(strftime);# full year:my $year = strftime "%Y", localtime;# just the last two digits of the year:my $ar = strftime "%y", localtime;

... or manual arithmetic:

my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =                                                        localtime;# full year:$year += 1900;# just the last two digits of the year:my $ar = sprintf("%02d", $year % 100);

In scalar context,localtime returns thectime(3) value:

my $now_string = localtime;  # e.g., "Thu Oct 13 04:54:34 1994"

This scalar value is always in English, and isnot locale-dependent. To get similar but locale-dependent date strings, try for example:

use POSIX qw(strftime);my $now_string = strftime "%a %b %e %H:%M:%S %Y", localtime;# or for GMT formatted appropriately for your locale:my $now_string = strftime "%a %b %e %H:%M:%S %Y", gmtime;

$now_string will be formatted according to the current LC_TIME locale the program or thread is running in. Seeperllocale for how to set up and change that locale. Note that%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.

TheTime::gmtime andTime::localtime modules provide a convenient, by-name access mechanism to thegmtime andlocaltime functions, respectively.

For a comprehensive date and time representation look at theDateTime module on CPAN.

For GMT instead of local time use thegmtime builtin.

See also theTime::Local module (for converting seconds, minutes, hours, and such back to the integer value returned bytime), and thePOSIX module'smktime function.

Portability issues:"localtime" in perlport.

Perldoc Browser is maintained by Dan Book (DBOOK). Please contact him via theGitHub issue tracker oremail regarding any issues with the site itself, search, or rendering of documentation.

The Perl documentation is maintained by the Perl 5 Porters in the development of Perl. Please contact them via thePerl issue tracker, themailing list, orIRC to report any issues with the contents or format of the documentation.


[8]ページ先頭

©2009-2025 Movatter.jp