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 GreenwichHeure 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
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'heureNous 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 :
Symbole | Description | Instance |
---|---|---|
%a | Jour de la semaine L'abréviation de (Dim..Sat) * | Thu |
%A | Le nom complet du jour du semaine (dimanche..samedi) * | Thursday |
%b | Abréviation du mois (janvier..décembre) * | Aug |
%B | Le nom complet du mois (janvier..décembre) * | August |
%c | Date et heure* | Thu Aug 23 14:55:02 2001 |
%C | L'année est divisée par 100, et l'arrondi (00-99 ) | 20 |
%d | Le jour du mois (01-31 ) | 23 |
%D | Date, MM/DD/YY est égal à %m/%d/%y | 08/23/01 |
%e | Le jour du mois, utilisez des espaces pour remplir un chiffre ( 1-31 ) | 23 |
%F | YYYY-MM-DD est abrégé comme %Y-%m-%d | 2001-08-23 |
%g | Les deux derniers chiffres de l'année (00-99 ) | 01 |
%g | Année | 2001 |
%h | Abréviation du mois* (identique à %b option) | Aug |
%H | Format 24 heures (00-23 ) | 14 |
%I | Horloge de 12 heures (01-12 ) | 02 |
%j | Le premier jour de l'année jours (001-366 ) | 235 |
%m | mois (01-12 ) | 08 |
%M | Minutes (00-59 ) | 55 |
%n | Nouvelle ligne ('n' ) | |
%p | affiche AM ou PM | PM |
%r | Heure (hh : mm : SS AM ou PM), 12 heures * | 02:55:02 pm |
%R | Format d'heure de 24 heuresHH:MM , égal à %H:%M | 14:55 |
%S | Secondes (00-61 ) | 02 |
%t | Onglet horizontal ('t' ) | |
%T | Heure (24 -format heure) (hh:mm:ss), équivalent à %H:%M:%S | 14:55 |
%u | ISO Le jour de la semaine au format 8601, le lundi est 1 (1-7 ) | 4 |
%U | Le nombre de semaines dans l'année, le dimanche est le premier jour (00-53 ) | 33 |
%V | Semaine ISO 8601 (00-53 ) | 34 |
%w | Le jour de la semaine (0 représente dimanche) (0-6 ) | 4 |
%W | Une 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 |
%X | Format de l'heure d'affichage* | 14:55:02 |
%y | Année, deux chiffres (00-99 ) | 01 |
%Y | Année | 2001 |
%z | ISO 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