Perl time date


Release date:2023-10-18 Update date:2023-10-21 Editor:admin View counts:361

Label:

Perl time date

In this chapter, we introduce to you Perl treatment of time and date by language.

There are several functions for processing time in Perl:

  • time() Function: returns the number of seconds accumulated since January 1, 1970

  • localtime() Function: get local time zone time

  • gmtime() Function: get Greenwich mean time

Current time and date

Next, let’s take a look. localtime() function that returns the current time and date without arguments.

The following nine symbols represent different time and date parameters:

Sec, # seconds, 0 to 61
Min, # minutes, 0 to 59
Hour, # hours, 0 to 24
Mday, # days, 1 to 31
Mon, # month, 0 to 11
Year, # year, starting from 1900
Wday, # day of the week, 0-6,0 represents Sunday
Yday, # day of the year, 0-364365
Isdst # True if daylight saving time is valid

The example is shown as follows:

Example

#/ Usr/bin/ perl@months =Qw (January, February, March, April, May, June, July, August, September)
October, November, December)@ Days=qw (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday)
Saturday; ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst)=localtime();
Print "$mday $months [$mon] $days [$wday] n";

The output of the above example is as follows:

June Sunday, December

If you call the localtime() which returns the time when the system setsthe time zone for the current period. An example is as follows:

Example

#!/usr/bin/perl$datestring=localtime();print"Time date is:$datestring\\n";

The output of the above example is as follows:

Time date is:Sun Jun 12 11:27:31 2016

Greenwich mean time (GMT)

Function gmtime() vs. localtime() similar, but it returns standardGreenwich mean time.

Example

#/ Usr/bin/perl $local_ Datestring=localtime(); Print "The local time and
date are: $local_datestring n"$ Gmt_ Datestring=gmtime(); Print "GMT
Time and date: $gmt_ Datestring n ";

The output of the above example is as follows:

Local time and date: Sun Jun 12 11:32:14 2016
GMT time and date: Sun Jun 12 03:32:14 2016

We can see from the example that there is a difference of 8 hours between Chinese time and Greenwich mean time.

Format date and time

We can use it. localtime() function to output the formatting time that needs to be established. Formatted output using printf() function:

Example

#!/usr/bin/perl($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=
localtime();printf("Format Time:HH:MM:SS\\n");printf("%02d:%02d:%02d",$hour,$min,$sec);

The output of the above example is as follows:

Format Time:HH:MM:SS
11:35:23

New era time (Epoch Time)

We can use it. time() function to get the time of the new era, which returns the number of seconds accumulated since January 1, 1970. Examples are as follows:

Example

#!/usr/bin/perl$epoc=time();print"
The cumulative number of seconds since January 1, 1970 is:$epoc\\n";

The output of the above example is as follows:

The cumulative number of seconds since January 1, 1970 is:1465702883

We can output a time format that we want:

Example

#/ Usr/bin/perl ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst)=localtime(); Print "
Current time and date:"; Printf ("% d -% d -% d
%d: % d:% d ", $year+1900, $mon+1, $mday, $hour, $min, $sec); print" n "; $epoc=time(); $epoc=$epoc-24 * 60 * 60#
One day's time seconds ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst)=localtime ($epoc);
Print "Yesterday time and date:"; Printf ("% d -% d -% d
%d: % d:% d ", $year+1900, $mon+1, $mday, $hour, $min, $sec); print" n ";

The output of the above example is as follows:

Current time and date: March 15, 2017 12:47:54
Yesterday's time and date: March 14, 2017 12:47:54

POSIX function strftime()

Function strftime() we can format the time into the format we want.

The following table lists some formatted symbols * number indicates that you want to rely on local time:

Symbol

Description

Example

%a

Abbreviation of day of the week (Sun..Sat) *

Thu

%A

The full name of the week (Sunday..Saturday) *

Thursday

%b

Abbreviation for month (Jan..Dec) *

Aug

%B

Full name of the month (January..December) *

August

%c

Date and time *

Thu Aug 23 14:55:02 2001

%C

The year is divided by 100 and rounded (00-99)

20

%d

The day of a month (01-31)

23

%D

Date, MM/DD/YY? Equivalent to% m/%d/%y

08/23/01

%e

On the day of the month, fill in single digits with spaces (?1-31)

23

%F

YYYY-MM-DD? The abbreviation is similar to?% Y-%m-%d

37126

%g

The last two digits of the year (00-99)

1

%g

Year

2001

%h

Month abbreviation * (same as% b option)

Aug

%H

24-hour system (00-23)

14

%I

12-hour system (01-12)

2

%j

The day of the year (001-366)

235

%m

Month (01-12)

8

% M

Minutes (00-59)

55

%n

New line (’n’)

%p

Show AM or PM

PM

%r

Time (hh:mm:ss AM or PM), 12 hours *

0.621550926

%R

24 hours? HH:MM? Time format, which is equal to?% HRV% M

0.621527778

%S

Seconds (00-61)

2

%t

Horizontal tab (’t’)

%T

Time (24-hour system) (hh:mm:ss), equivalent to% H:%M:%S

0.621527778

%u

What day format is ISO 8601, Monday is 1? (1-7)

4

%U

The week ordinal of the year, Sunday is the first day (00-53)

33

%V

Week of ISO 8601 (00-53)

34

%w

The day of the week (0 represents Sunday) (0-6)

4

%W

The week ordinal of the year, Monday is the first day (00-53)

34

%x

Display date format (mm/dd/yy) *

08/23/01

%X

Display time format *

0.621550926

%y

Year, double digits (00-99)

1

%Y

Year

2001

%z

Time zone offset between ISO 8601 and UTC (1 minute=1, 1 hour=100)

100

%Z

Name of the current time zone, such as “China Standard time” *

CDT

%%

%? Symbol

%

Example

#/ Usr/bin/perluse POSIXqw (strftime)$ Datestring=strftime "% Y -% m -% d
%H: % M:% S ", localtime; printf (" time date - $datestring n "); # GMT
Format time date $datestring=strftime "% Y -% m -% d
%H: % M:% S ", gmtime; printf (" time date - $datestring n ");

The output of the above example is as follows:

Time and date - June 12, 2016 12:15:13
Time and date - June 12, 2016 04:15:13

Powered by TorCMS (https://github.com/bukun/TorCMS).