NAME
POSIX::1003::Time - POSIX handling time
SYNOPSIS
use POSIX::1003::Time;
tzset(); # set-up local timezone from $ENV{TZ}
($std, $dst) = tzname; # timezone abbreviations
$str = ctime($timestamp); # is equivalent to:
$str = asctime(localtime($timestamp))
$str = strftime("%A, %B %d, %Y", 0, 0, 0, 12, 11, 95, 2);
$str = strftime("%A, %B %d, %Y", {day => 12, month => 12
, year => 1995, wday => 2});
# $str contains "Tuesday, December 12, 1995"
$timestamp = mktime(0, 30, 10, 12, 11, 95);
$timestamp = mktime {min => 30, hour => 10, day => 12
, month => 12, year => 1995};
print "Date = ", ctime($timestamp);
print scalar localtime;
my $year = (localtime)[5] + 1900;
$timespan = difftime($end, $begin);
DESCRIPTION
FUNCTIONS
Standard POSIX
Warning: the functions asctime(), mktime(), and strftime() share a weird complex encoding with localtime() and gmtime(): the month (mon
), weekday (wday
), and yearday (yday
) begin at zero. I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The year (year
) is given in years since 1900. I.e., the year 1995 is 95; the year 2001 is 101.
- asctime($sec, $min, $hour, $mday, $mon, $year, ...)
-
The
asctime
function usesstrftime
with a fixed format, to produce timestamps with a trailing new-line. Example:"Sun Sep 16 01:03:52 1973\n"
The parameter order is the same as for strftime() without its
$format
parameter:my $str = asctime($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst);
- clock()
-
The amount of spent processor time in microseconds.
- ctime($timestamp)
-
# equivalent my $str = ctime $timestamp; my $str = asctime localtime $timestamp;
- difftime($timestamp, $timestamp)
-
Difference between two TIMESTAMPs, which are floats.
$timespan = difftime($end, $begin);
- gmtime( [$time] )
-
Simply "gmtime" in perlfunc
- localtime( [$time] )
-
Simply "localtime" in perlfunc
- mktime(@tm|\%date)
-
Convert date/time info to a calendar time. Returns "undef" on failure.
# Calendar time for December 12, 1995, at 10:30 am my $ts = mktime 0, 30, 10, 12, 11, 95; print "Date = ", ctime($ts); my %tm = (min => 30, hour => 10, day => 12, month => 12, year => 1995); my $ts = mktime \%tm; # %tm will get updated, mday and yday added
- strftime($format, @tm|\%date)
-
The formatting of
strftime
is extremely flexible but the parameters are quite tricky. Read carefully!my $str = strftime($fmt, $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst); my $str = strftime($fmt, {month => 12, year => 2015};
If you want your code to be portable, your $format argument should use only the conversion specifiers defined by the ANSI C standard (C89, to play safe). These are
aAbBcdHIjmMpSUwWxXyYZ%
. But even then, the results of some of the conversion specifiers are non-portable.[0.95_5] This implementation of
strftime()
is character-set aware, even when the LC_TIME table does not match the type of the format string. - strptime($timestring, $format)
-
Translate the TIMESTRING into a time-stamp (seconds since epoch). The $format describes how the $timestring should be interpreted.
Returned is a HASH with the usefull data from the 'tm' structure (as described in the standard strptime manual page) The keys are stripped from the
tm_
prefix.example:
# traditional interface my ($sec, $min, ...) = strptime "12:24", "%H:%S"; # date as hash my $tm = strptime "12:24", "%H:%S"; print "$tm->{hour}/$tm->{min}\n"; my $time = mktime $tm;
- tzname()
-
Returns the strings to be used to represent Standard time (STD) respectively Daylight Savings Time (DST).
tzset(); my ($std, $dst) = tzname;
- tzset()
-
Set-up local timezone from
$ENV{TZ}
and the OS.
CONSTANTS
The constant names for this module are inserted here during installation.
SEE ALSO
This module is part of POSIX-1003 distribution version 1.00, built on May 05, 2020. Website: http://perl.overmeer.net/CPAN. The code is based on POSIX, which is released with Perl itself. See also POSIX::Util for additional functionality.
COPYRIGHTS
Copyrights 2011-2020 on the perl code and the related documentation by [Mark Overmeer]. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://dev.perl.org/licenses/