Date et heure
Le langage de programmation Python a un module nommé datetime pour travailler avec les dates et les heures.
Demander la date et l'heure actuelles
Voici un exemple d'un programme en Python 3 permettant d'afficher la date et l'heure actuelle :
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
2021-02-06 10:27:31.913015Dans ce programme, nous avons importé le module datetime à l'aide de l'instruction import datetime. L'une des classes définies dans le module datetime est la classe datetime. Nous avons ensuite utilisé la méthode now() pour créer un objet datetime contenant la date et l'heure locales actuelles.
Demande la date actuelle
Si on veut simplement demander la date sans leur en Python 3, on utilisera un programme ressemblant à ceci :
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
2021-02-06Dans ce programme, nous avons utilisé la méthode today() définie dans la classe date pour obtenir un objet date contenant la date locale actuelle.
L'intérieur de datetime
Vous pouvez utiliser la fonction dir() pour obtenir une liste contenant tous les attributs d'un module :
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'date', 'datetime', 'datetime_CAPI', 'sys', 'time', 'timedelta', 'timezone', 'tzinfo']Les classes couramment utilisées dans le module datetime sont :
- Classe date
- Classe time
- Classe datetime
- Classe timedelta
Classe datetime.date
Vous pouvez instancier des objets de date à partir de la classe de date. Un objet date représente une date (année, mois et jour).
Objet date pour représenter une date
L'exemple suivant permet de construire une date à partir d'un objet date :
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
2021-02-06Si vous vous demandez, date() dans l'exemple ci-dessus est un constructeur de la classe date. Le constructeur prend trois paramètres : année, mois et jour. La variable madate est un objet date.
Nous ne pouvons importer la classe de date qu'à partir du module datetime. Voici comment :
Demande la date actuelle
Vous pouvez créer un objet de date contenant la date actuelle en utilisant une méthode de classe nommée today(). Voici comment :
Demande la date à partir d'un horodatage
Nous pouvons également créer des objets de date à partir d'un horodatage. Un horodatage Unix est le nombre de secondes entre une date particulière et le 1er janvier 1970 à UTC. Vous pouvez convertir un horodatage en date à l'aide de la méthode fromtimestamp() :
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
Date = 2021-02-06Afficher l'année, le mois et le jour d'aujourd'hui
Nous pouvons facilement obtenir l'année, le mois, le jour, le jour de la semaine,... à partir de l'objet de date. Voici comment :
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
Année actuelle : 2021Mois actuelle : 2
Jour actuelle : 6
datetime.time
Un objet time instancié à partir de la classe time contient une représentation de l'heure locale.
Objet time pour représenter l'heure
Voici des appels de la classe time avec un nombre différents de paramètres :
- from datetime import time
-
- # time(heure = 0, minute = 0, seconde = 0)
- a = time()
- print("a =", a)
-
- # time(heurre, minute, seconde)
- b = time(10, 37, 57)
- print("b =", b)
-
- # time(heure, minute, seconde)
- c = time(hour = 10, minute = 37, second = 57)
- print("c =", c)
-
- # time(heure, minute, seconde, microseconde)
- d = time(10, 37, 57, 123456)
- print("d =", d)
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
a = 00:00:00b = 10:37:57
c = 10:37:57
d = 10:37:57.123456
Afficher l'heure, les minutes, les secondes et les microsecondes
Une fois que vous avez créé un objet de temps, vous pouvez facilement afficher ses attributs tels que l'heure, les minutes,... :
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
Heure = 10Minute = 37
Seconde = 57
Microseconde = 0
Notez que nous n'avons pas passé de paramètre en microseconde. Par conséquent, sa valeur par défaut 0 est affichée.
datetime.datetime
Le module datetime a une classe nommée datetime pouvant contenir des informations sur les objets de date et d'heure.
Objet datetime de Python
L'exemple montre l'utilisation de la classe datetime avec ou sans heure :
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
2021-02-06 00:00:002021-02-06 23:55:59.342380
Les trois premiers paramètres année, mois et jour dans le constructeur datetime() sont obligatoires.
Afficher l'année, le mois, l'heure, les minutes et l'horodatage
L'exemple suivant permet d'afficher l'année, le mois, l'heure, les minutes et l'horodatage :
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
Année = 2021Mois = 2
Heure = 23
Minute = 55
Horodatage = 1612673759.34238
datetime.timedelta
Un objet timedelta représente la différence entre deux dates ou heures. L'exemple suivant permet d'afficher la différence entre deux objets timedelta :
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
t3 = 14 days, 13:55:39Dans l'exemple précédent, nous avons créé deux objets timedelta nommé t1 et t2, et leur différence est affichée à l'écran.
L'exemple suivant permet d'afficher un objet timedelta négatif :
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
t3 = -1 day, 23:59:40t3 = 0:00:20
Durée en secondes
Vous pouvez obtenir le nombre total de secondes dans un objet timedelta en utilisant la méthode total_seconds().
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
Secondes total = 525637.233423Vous pouvez également trouver la somme de deux dates et heures en utilisant l'opérateur +. En outre, vous pouvez multiplier et diviser un objet timedelta par des entiers et des nombres à virgules flottantes (nombre réel).
datetime au format Python
La façon dont la date et l'heure sont représentées peut être différente selon les endroits, les organisations,... Il est plus courant d'utiliser mm/jj/aaaa aux États-Unis, alors que jj/mm/aaaa est plus courant au Royaume-Uni. Le Python a les méthodes strftime() et strptime() pour gérer ces situations.
strftime() de Python : Objet datetime en chaîne de caractères
La méthode strftime() est définie sous les classes date, datetime et time. La méthode crée une chaîne de caractères formatée à partir d'un objet date, datetime ou time donné.
- from datetime import datetime
-
- # date et heure actuelle
- maintenant = datetime.now()
-
- t = maintenant.strftime("%H:%M:%S")
- print("Heure :", t)
-
- s1 = maintenant.strftime("%m/%d/%Y, %H:%M:%S")
- # Format mm/dd/AA H:M:S
- print("s1 : ", s1)
-
- s2 = maintenant.strftime("%d/%m/%Y, %H:%M:%S")
- # Format dd/mm/AA H:M:S
- print("s2 : ", s2)
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
Heure : 15:21:37s1 : 02/06/2021, 15:21:37
s2 : 06/02/2021, 15:21:37
Dans l'exemple précédent, %Y, %m, %d, %H ... sont des codes de format. La méthode strftime() prend un ou plusieurs codes de format et renvoie une chaîne de caractères formatée basée sur celui-ci. Dans le programme ci-dessus, t, s1 et s2 sont des chaînes de caractères dont voici la signification :
Code | Description | Intervalle |
---|---|---|
%Y | Année | [0001, ..., 2018, 2019, 2020, 2021,..., 9999] |
%m | Mois | [01, 02, ..., 11, 12] |
%d | Jour | [01, 02, ..., 30, 31] |
%H | Heure | [00, 01, ..., 22, 23] |
%M | Minute | [00, 01, ..., 58, 59] |
%S | Seconde | [00, 01, ..., 58, 59] |
strptime() de Python - chaîne à caractères datetime
La méthode strptime() crée un objet datetime à partir d'une chaîne de caractères donnée (représentant la date et l'heure).
Lorsque vous exécutez le programme, la sortie retournera quelque chose comme ceci :
chaine_date = 6 February, 2021objet_date = 2021-02-06 00:00:00
La méthode strptime() prend deux paramètres :
- une chaîne de caractères représentant la date et l'heure
- un code de format équivalent au premier paramètre
Par ailleurs, les codes de format %d, %B et %Y sont utilisés respectivement pour le jour, le mois (nom complet) et l'année.
Gestion du fuseau horaire en Python
Supposons que vous travaillez sur un projet et que vous deviez afficher la date et l'heure en fonction de leur fuseau horaire. Plutôt que d'essayer de gérer vous-même le fuseau horaire, il existe le module tiers pytz de Stuart Bishop.