Maîtriser strftime() en Python : Convertir les dates et heures en chaînes lisibles
Python strftime()
Dans cet article, vous apprendrez à convertir des objets date, time et datetime en leurs équivalents sous forme de chaînes de caractères (avec des exemples).
Vidéo : Dates et heures en Python
La méthode strftime() renvoie une chaîne représentant la date et l'heure en utilisant un objet date, time ou datetime.
Exemple 1 : Conversion d'un objet datetime en chaîne avec strftime()
Le programme ci-dessous convertit un objet datetime contenant la date et l'heure actuelles en différents formats de chaînes.
from datetime import datetime
now = datetime.now() # date et heure actuelles
year = now.strftime("%Y")
print("year:", year)
month = now.strftime("%m")
print("month:", month)
day = now.strftime("%d")
print("day:", day)
time = now.strftime("%H:%M:%S")
print("time:", time)
date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
print("date and time:", date_time)
Lorsque vous exécutez le programme, la sortie ressemble à :
year: 2018 month: 12 day: 24 time: 04:59:31 date and time: 12/24/2018, 04:59:31
Ici, year, day, time et date_time sont des chaînes de caractères, alors que now est un objet datetime.
Comment fonctionne strftime() ?
Dans le programme ci-dessus, %Y, %m, %d, etc. sont des codes de format. La méthode strftime() prend un ou plusieurs codes de format comme argument et renvoie une chaîne formatée en conséquence.
- Nous avons importé la classe
datetimedepuis le moduledatetime. C'est parce que l'objet de la classedatetimepeut accéder à la méthodestrftime().
- L'objet
datetimecontenant la date et l'heure actuelles est stocké dans la variable now.
- La méthode
strftime()peut être utilisée pour créer des chaînes formatées.
- La chaîne que vous passez à la méthode
strftime()peut contenir plus d'un code de format.
Exemple 2 : Création d'une chaîne à partir d'un timestamp
from datetime import datetime
timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
print("Date time object:", date_time)
d = date_time.strftime("%m/%d/%Y, %H:%M:%S")
print("Output 2:", d)
d = date_time.strftime("%d %b, %Y")
print("Output 3:", d)
d = date_time.strftime("%d %B, %Y")
print("Output 4:", d)
d = date_time.strftime("%I%p")
print("Output 5:", d)
Lorsque vous exécutez le programme, la sortie sera :
Date time object: 2018-06-12 09:55:22 Output 2: 06/12/2018, 09:55:22 Output 3: 12 Jun, 2018 Output 4: 12 June, 2018 Output 5: 09AM
Liste des codes de format
Le tableau ci-dessous présente tous les codes que vous pouvez passer à la méthode strftime().
| Directive | Signification | Exemple |
|---|---|---|
%a | Nom abrégé du jour de la semaine. | Dim, Lun, ... |
%A | Nom complet du jour de la semaine. | Dimanche, Lundi, ... |
%w | Jour de la semaine en nombre décimal. | 0, 1, ..., 6 |
%d | Jour du mois en décimal avec zéro initial. | 01, 02, ..., 31 |
%-d | Jour du mois en nombre décimal (sans zéro initial). | 1, 2, ..., 30 |
%b | Nom abrégé du mois. | Jan, Fév, ..., Déc |
%B | Nom complet du mois. | Janvier, Février, ... |
%m | Mois en décimal avec zéro initial. | 01, 02, ..., 12 |
%-m | Mois en nombre décimal (sans zéro initial). | 1, 2, ..., 12 |
%y | Année sans siècle, avec zéro initial. | 00, 01, ..., 99 |
%-y | Année sans siècle, sans zéro initial. | 0, 1, ..., 99 |
%Y | Année avec siècle en décimal. | 2013, 2019, etc. |
%H | Heure (horloge 24h) avec zéro initial. | 00, 01, ..., 23 |
%-H | Heure (horloge 24h) sans zéro initial. | 0, 1, ..., 23 |
%I | Heure (horloge 12h) avec zéro initial. | 01, 02, ..., 12 |
%-I | Heure (horloge 12h) sans zéro initial. | 1, 2, ..., 12 |
%p | AM ou PM selon la locale. | AM, PM |
%M | Minute avec zéro initial. | 00, 01, ..., 59 |
%-M | Minute sans zéro initial. | 0, 1, ..., 59 |
%S | Seconde avec zéro initial. | 00, 01, ..., 59 |
%-S | Seconde sans zéro initial. | 0, 1, ..., 59 |
%f | Microseconde en décimal, zéro initial à gauche. | 000000 - 999999 |
%z | Décalage UTC sous la forme +HHMM ou -HHMM. | |
%Z | Nom du fuseau horaire. | |
%j | Jour de l'année avec zéro initial. | 001, 002, ..., 366 |
%-j | Jour de l'année sans zéro initial. | 1, 2, ..., 366 |
%U | Numéro de la semaine (dimanche comme premier jour). | 00, 01, ..., 53 |
%W | Numéro de la semaine (lundi comme premier jour). | 00, 01, ..., 53 |
%c | Représentation locale appropriée de la date et l'heure. | Lun 30 Sep 07:06:05 2013 |
%x | Représentation locale appropriée de la date. | 09/30/13 |
%X | Représentation locale appropriée de l'heure. | 07:06:05 |
%% | Caractère '%' littéral. | % |
Exemple 3 : Date et heure appropriées selon la locale
from datetime import datetime
timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
d = date_time.strftime("%c")
print("Output 1:", d)
d = date_time.strftime("%x")
print("Output 2:", d)
d = date_time.strftime("%X")
print("Output 3:", d)
Lorsque vous exécutez le programme, la sortie sera :
Output 1: Tue Jun 12 09:55:22 2018 Output 2: 06/12/18 Output 3: 09:55:22
Les codes de format %c, %x et %X sont utilisés pour la représentation locale appropriée de la date et de l'heure.
Nous vous recommandons également de consulter strptime() en Python. La méthode strptime() crée un objet datetime à partir d'une chaîne.
Python
- Mots-clés et identifiants Python : Maîtriser les mots réservés et les conventions de nommage
- Maîtriser les types de données Python : Guide pratique
- Maîtriser les opérateurs Python : Guide complet
- Maîtriser les arguments de fonctions Python : Positionnels, nommés et paramètres par défaut
- Maîtriser les dictionnaires Python : création, manipulation et techniques avancées
- Maîtriser les itérateurs Python : fonctionnement et création des vôtres
- Les fermetures Python expliquées : comment les fonctions imbriquées capturent les variables
- Expressions régulières Python (module re) — Guide pratique
- Maîtriser Python datetime : guide pratique pour les dates, heures et fuseaux horaires