Dans ce chapitre, nous vous présentons le traitement de l'heure et de la date en langage Perl.
Il existe plusieurs fonctions pour gérer le temps en Perl :
1. fonction time() : renvoie le nombre de secondes accumulées depuis le 1er janvier 1970
2. Fonction localtime() : obtenir l'heure du fuseau horaire local
3. Fonction gmtime() : obtenir l'heure moyenne de Greenwich
Examinons ensuite la fonction localtime() , qui renvoie l'heure et la date actuelles sans arguments.
Les 9 symboles suivants représentent différents paramètres d'heure et de date :
sec, # secondes, 0 à 61 min, # minutes, 0 à 59 heures, # heures, 0 à 24 mjour, # jours, 1 à 31 mois, # mois, 0 à 11 ans, # ans, à partir de 1900 jours, # jour de la semaine , 0 -6,0 signifie dimanche yday, # Le jour de l'année, 0-364,365isdst # Vrai si l'heure d'été est en vigueur
Un exemple de démonstration est le suivant :
Le résultat de l'exécution de l'exemple ci-dessus est :
dimanche 12 juin
Si localtime() est appelé directement, il renvoie l'heure du paramètre de fuseau horaire actuel du système. L'exemple est le suivant :
Le résultat de l'exécution de l'exemple ci-dessus est :
L'heure et la date sont : dim. 12 juin 2016, 11:27:31
La fonction gmtime() est similaire à localtime(), mais elle renvoie l'heure de Greenwich standard.
Le résultat de l'exécution de l'exemple ci-dessus est :
L'heure et la date locales sont les suivantes : dim. 12 juin 11:32:14 2016GMT. L'heure et la date sont : dim. 12 juin 03:32:14 2016.
Nous pouvons voir dans l’exemple que l’heure en Chine diffère de 8 heures de l’heure moyenne de Greenwich.
Nous pouvons utiliser les 9 éléments time de la fonction localtime() pour afficher l'heure au format qui doit être formulée. La sortie formatée utilise la fonction printf() :
Le résultat de l'exécution de l'exemple ci-dessus est :
Heure de formatage : HH:MM:SS11:35:23
Nous pouvons obtenir l'heure de l'époque en utilisant la fonction time(), qui renvoie le nombre de secondes depuis le 1er janvier 1970. Les exemples sont les suivants :
Le résultat de l'exécution de l'exemple ci-dessus est :
Le nombre de secondes cumulées depuis le 1er janvier 1970 est : 1465702883
Nous pouvons afficher le format d'heure souhaité :
Le résultat de l'exécution de l'exemple ci-dessus est :
Heure et date actuelles : 15/03/2017 12:47:54 Heure et date d'hier : 14/03/2017 12:47:54
La fonction strftime() peut formater l'heure dans le format souhaité.
Le tableau suivant répertorie certains symboles de formatage. Le symbole * indique que vous souhaitez vous fier à l'heure locale :
symbole | décrire | Exemple |
---|---|---|
%a | Abréviation du jour de la semaine (Dim..Sam) * | Thu |
%A | Le nom complet du jour de la 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 arrondie ( 00-99 ) | 20 |
%d | Le jour du mois ( 01-31 ) | 23 |
%D | La date, MM/DD/YY est égale à %m/%d/%y | 08/23/01 |
%e | Le jour du mois, en utilisant des espaces pour remplir un seul chiffre ( 1-31 ) | 23 |
%F | L'abréviation YYYY-MM-DD est similaire à %Y-%m-%d | 2001-08-23 |
%g | Deux derniers chiffres de l'année ( 00-99 ) | 01 |
%g | Année | 2001 |
%h | Abréviation du mois* (identique à l'option %b ) | Aug |
%H | Format 24 heures ( 00-23 ) | 14 |
%I | Format 12 heures ( 01-12 ) | 02 |
%j | Jour de l'année ( 001-366 ) | 235 |
%m | Mois ( 01-12 ) | 08 |
%M | Minutes ( 00-59 ) | 55 |
%n | nouvelle ligne ( 'n' ) |
|
%p | Afficher AM ou PM | PM |
%r | Heure (hh:mm:ss AM ou PM), 12 heures* | 02:55:02 pm |
%R | Format d'heure HH:MM sur 24 heures, équivalent à %H:%M | 14:55 |
%S | Nombre de secondes ( 00-61 ) | 02 |
%t | Onglet horizontal ( 't' ) |
|
%T | Heure (format 24 heures) (hh:mm:ss), équivalente à %H:%M:%S | 14:55 |
%u | Format du jour de la semaine ISO 8601, le lundi est 1 ( 1-7 ) | 4 |
%U | Numéro de semaine de l'année, le dimanche est le premier jour ( 00-53 ) | 33 |
%V | Semaine ISO 8601 ( 00-53 ) | 34 |
%w | Jour de la semaine (0 représente dimanche) ( 0-6 ) | 4 |
%W | Numéro de 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 | Décalage de fuseau horaire entre ISO 8601 et UTC (1 minute = 1, 1 heure = 100) | +100 |
%Z | Le nom du fuseau horaire actuel, par exemple « China Standard Time » * | CDT |
%% | % symbole | % |
Le résultat de l'exécution de l'exemple ci-dessus est :
Heure et date - 2016-06-12 12:15:13 Heure et date - 2016-06-12 04:15:13