Dates et heures
Dates avec Python
Une date en Python n'est pas un type de données par défaut, mais il existe un module nommé datetime pour travailler avec ce type.
Importez le module datetime et affichez la date actuelle :
import datetime
x = datetime.datetime.now() print(x)
Quand nous exécutons le code de l'exemple ci-dessus, le résultat est :
2019-04-01 11:15:15.068664
La date contient l'année, le mois, le jour, l'heure, la minute, la seconde et la microseconde.
Le module datetime dispose de nombreuses méthodes pour renvoyer des informations sur l'objet date. Voici quelques exemples.
Retourne l'année et le nom du jour de la semaine :
import datetime x = datetime.datetime.now() print(x.year) print(x.strftime("%A"))
Création d'objets Date
Pour créer une date, on peut utiliser la classe datetime() (constructeur) du module datetime.
La classe datetime() nécessite trois paramètres : année, mois, jour.
import datetime x = datetime.datetime(2025, 2, 14) print(x)
La classe python datetime() prend également des paramètres pour l'heure et le fuseau horaire (heure, minute, seconde, microseconde, tzone), mais ils sont optionnels, et ont une valeur par défaut de 0. (Aucun pour le fuseau horaire).
La méthode Python strftime()
L'objet datetime a une méthode pour formater les objets date en chaînes lisibles.
La méthode s'appelle strftime(), et prend un paramètre, format, pour spécifier le format de la chaîne retournée.
import datetime x = datetime.datetime(2018, 6, 1) print(x.strftime("%B"))
Voici un récapitulatif de tous les formats supportés :
Instruction | Description | Exemple |
---|---|---|
%a | Jour de semaine, version courte | Mer |
%A | Jour de semaine, nom complet | Mercredi |
%w | Le jour de la semaine numéroté de 0 à 6, 0 est le dimanche. | 3 |
%d | Jour du mois 01-31 | 31 |
%b | Nom du mois, version courte | Dec |
%B | Nom du mois, nom complet | Décembre |
%m | Mois numéroté de 0 à 12 | 12 |
%y | Année, version courte, sans siècle | 18 |
%Y | Année complète | 2018 |
%H | Heure 24h | 17 |
%I | Heure 12h | 05 |
%p | AM/PM | PM |
%M | Minute 00-59 | 41 |
%S | Secondes 00-59 | 08 |
%f | Microsecondes 000000-999999 | 548513 |
%z | Décalage UTC | +0100 |
%Z | Fuseau horaire | CST |
%j | Jour numéro de l'année de 001-366 | 365 |
%U | Numéro de la semaine dans l'année, le dimanche comme premier jour de la semaine, 00-53 | 52 |
%W | Numéro de la semaine dans l'année, lundi comme premier jour de la semaine, 00-53 | 52 |
%c | Version locale de la date et de l'heure | Mer Dec 31 17:41:00 2018 |
%x | Version locale de la date | 12/31/18 |
%X | Version locale de l'heure | 17:41:00 |