Date et heure Perl


Dans ce chapitre nous vous présentons le traitement de l'heure et de la date en langage Perl.

Les fonctions qui gèrent le temps en Perl sont les suivantes :

  • 1, fonction time() : renvoie la date du 1er janvier 1970. Le nombre de secondes accumulées depuis, fonction gmtime() :

    Obtenir l'heure moyenne de Greenwich
  • Heure et date actuelles

  • Regardons ensuite <🎜 Fonction >localtime()
  • , qui renvoie l'heure et la date actuelles sans paramètres.

    Les 9 symboles suivants représentent différents paramètres d'heure et de date :

    sec,     # 秒, 0 到 61
    min,     # 分钟, 0 到 59
    hour,    # 小时, 0 到 24
    mday,    # 天, 1 到 31
    mon,     # 月, 0 到 11
    year,    # 年,从 1900 开始
    wday,    # 星期几,0-6,0表示周日
    yday,    # 一年中的第几天,0-364,365
    isdst    # 如果夏令时有效,则为真

    L'exemple de démonstration est le suivant :
  • #!/usr/bin/perl
     
    @months = qw( 一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月 );
    @days = qw(星期天 星期一 星期二 星期三 星期四 星期五 星期六);
    
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
    print "$mday $months[$mon] $days[$wday]\n";
Le résultat de sortie de l'exécution de l'exemple ci-dessus est :
12 六月 星期天

If Appelez directement localtime(), qui renvoie l'heure du paramètre de fuseau horaire actuel du système. L'exemple est le suivant :

#!/usr/bin/perl
 
$datestring = localtime();
print "时间日期为:$datestring\n";

Le résultat de sortie de l'exécution de l'exemple ci-dessus est. :

时间日期为:Sun Jun 12 11:27:31 2016

Heure moyenne de Greenwich (GMT)

Fonction

gmtime()

Semblable à localtime(), mais elle renvoie l'heure de Greenwich standard.

#!/usr/bin/perl

$local_datestring = localtime();
print "本地时间日期为:$local_datestring\n";

$gmt_datestring = gmtime();
print "GMT 时间日期为:$gmt_datestring\n";

Le résultat de l'exécution de l'exemple ci-dessus est :

本地时间日期为:Sun Jun 12 11:32:14 2016
GMT 时间日期为:Sun Jun 12 03:32:14 2016

À partir de l'exemple, nous pouvons voir que l'heure en Chine est de 8 heures différente de l'heure moyenne de Greenwich.


Formater la date et l'heure

Nous pouvons utiliser les 9 éléments temporels de la fonction localtime() pour afficher l'heure formatée qui doit être formulée. La sortie formatée utilise la fonction printf() :

#!/usr/bin/perl
 
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();

printf("格式化时间:HH:MM:SS\n");
printf("%02d:%02d:%02d", $hour, $min, $sec);
Le résultat de sortie de l'exemple ci-dessus est :
格式化时间:HH:MM:SS
11:35:23

Epoch Time

Nous pouvons utiliser la fonction time( ) pour obtenir l'heure, qui renvoie le nombre de secondes depuis le 1er janvier 1970. L'exemple est le suivant :

#!/usr/bin/perl
 
$epoc = time();

print "从1970年1月1日起累计的秒数为:$epoc\n";

Le résultat de sortie de l'exécution de l'exemple ci-dessus est :

从1970年1月1日起累计的秒数为:1465702883

Nous pouvons afficher le format d'heure que nous voulons :

#!/usr/bin/perl

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
print "当期时间和日期:";
printf("%d-%d-%d %d:%d:%d",$year+1990,$mon+1,$mday,$hour,$min,$sec);

print "\n";

$epoc = time();
$epoc = $epoc - 24 * 60 * 60;   # 一天前的时间秒数
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($epoc);
print "昨天时间和日期:";
printf("%d-%d-%d %d:%d:%d",$year+1990,$mon+1,$mday,$hour,$min,$sec);

print "\n";

Le résultat de sortie de l'exécution de l'exemple ci-dessus est :

当期时间和日期:2106-6-12 11:49:28
昨天时间和日期:2106-6-11 11:49:28


Fonction POSIX strftime()

La fonction strftime() peut formater l'heure dans le format souhaité.

Le tableau suivant répertorie quelques symboles de formatage. Le symbole * indique que vous souhaitez vous fier à l'heure locale :

SymboleDescriptionInstance
%aJour de la semaine L'abréviation de (Dim..Sat) *Thu
%ALe nom complet du jour du semaine (dimanche..samedi) * Thursday
%bAbréviation du mois (janvier..décembre) *Aug
%BLe nom complet du mois (janvier..décembre) *August
%cDate et heure*Thu Aug 23 14:55:02 2001
%CL'année est divisée par 100, et l'arrondi (00-99)20
%dLe jour du mois (01-31)23
%DDate, MM/DD/YY est égal à %m/%d/%y 08/23/01
%eLe jour du mois, utilisez des espaces pour remplir un chiffre ( 1-31)23
%FYYYY-MM-DD est abrégé comme %Y-%m-%d2001-08-23
%g Les deux derniers chiffres de l'année (00-99)01
%gAnnée2001
%hAbréviation du mois* (identique à %b option)Aug
%HFormat 24 heures (00-23)14
%IHorloge de 12 heures (01-12)02
%jLe premier jour de l'année jours (001-366)235
%mmois (01-12)08
%M Minutes (00-59) 55
%nNouvelle ligne ('n')
%paffiche AM ou PMPM
%r Heure (hh : mm : SS AM ou PM), 12 heures *02:55:02 pm
%RFormat d'heure de 24 heuresHH:MM, égal à %H:%M 14:55
%SSecondes (00-61)02
%tOnglet horizontal ('t')
%T Heure (24 -format heure) (hh:mm:ss), équivalent à %H:%M:%S14:55
%uISO Le jour de la semaine au format 8601, le lundi est 1 (1-7)4
%ULe nombre de semaines dans l'année, le dimanche est le premier jour (00-53)33
%VSemaine ISO 8601 (00-53)34
%w Le jour de la semaine (0 représente dimanche) (0-6)4
%WUne quelle semaine de l'année, lundi est le premier jour (00-53)34
%x Format de la date d'affichage (mm/jj /aa) *08/23/01
%XFormat de l'heure d'affichage* 14:55:02
%yAnnée, deux chiffres (00-99)01
%YAnnée2001
%zISO 8601 et décalage de fuseau horaire UTC (1 minute = 1 , 1 heure=100)


+100
%Z Le nom du courant fuseau horaire, tel que « Heure standard de la Chine » *


CDT
%% % symbole%

L'exemple est le suivant :

#!/usr/bin/perl
use POSIX qw(strftime);

$datestring = strftime "%Y-%m-%d %H:%M:%S", localtime;
printf("时间日期 - $datestring\n");

#  GMT 格式化时间日期
$datestring = strftime "%Y-%m-%d %H:%M:%S", gmtime;
printf("时间日期 - $datestring\n");

Le résultat de sortie de l'exemple ci-dessus est :

时间日期 - 2016-06-12 12:15:13
时间日期 - 2016-06-12 04:15:13