CodeGym /Cours /Python SELF FR /Bibliothèque datetime

Bibliothèque datetime

Python SELF FR
Niveau 14 , Leçon 5
Disponible

9.1 Travailler avec la date et l'heure

Les programmeurs doivent très souvent manipuler des dates et des heures dans leurs programmes. Il n'y a donc rien d'étonnant à ce que Python dispose de deux bibliothèques standard datetime et time.

La bibliothèque datetime fait partie de la bibliothèque standard de Python et fournit des classes pour travailler avec les dates et les heures. Elle permet de créer, manipuler et formater des dates et des heures, ainsi que d'effectuer des opérations arithmétiques avec elles.

Les principales classes de la bibliothèque datetime

La classe datetime.date

Cette classe représente une date (année, mois, jour) sans temps. Elle est utile pour travailler avec les dates calendaires.

Exemple d'utilisation :


import datetime

# Création d'un objet date
d = datetime.date(2023, 5, 24)
print(d)  # Résultat : 2023-05-24
            
# Obtention de la date actuelle
today = datetime.date.today()
print(today)
            
# Accès aux attributs année, mois et jour
print(d.year)  # Résultat : 2023
print(d.month)  # Résultat : 5
print(d.day)  # Résultat : 24

La classe datetime.time

Cette classe représente le temps (heures, minutes, secondes, microsecondes) sans date. Elle est utile pour travailler avec l'heure de la journée.

Exemple d'utilisation :


import datetime

# Création d'un objet temps
t = datetime.time(14, 30, 45)
print(t)  # Résultat : 14:30:45
            
# Accès aux attributs heures, minutes et secondes
print(t.hour)  # Résultat : 14
print(t.minute)  # Résultat : 30
print(t.second)  # Résultat : 45

La classe datetime.datetime

Cette classe combine la date et le temps (année, mois, jour, heures, minutes, secondes, microsecondes). Elle est utile pour travailler avec des moments spécifiques dans le temps.

Exemple d'utilisation :


import datetime

# Création d'un objet date et temps
dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
print(dt)  # Résultat : 2023-05-24 14:30:45
        
# Obtention de la date et l'heure actuelles
now = datetime.datetime.now()
print(now)
        
# Accès aux attributs date et temps
print(dt.year)  # Résultat : 2023
print(dt.month)  # Résultat : 5
print(dt.day)  # Résultat : 24
print(dt.hour)  # Résultat : 14
print(dt.minute)  # Résultat : 30
print(dt.second)  # Résultat : 45

La classe datetime.timedelta

Cette classe représente la différence entre deux moments dans le temps, exprimée en jours, secondes et microsecondes. Elle est utile pour effectuer des opérations arithmétiques avec les dates et les heures.

Exemple d'utilisation :


import datetime

# Création d'un objet timedelta
delta = datetime.timedelta(days=10, hours=5, minutes=30)
print(delta)  # Résultat : 10 days, 5:30:00
        
# Ajout de timedelta à une date
dt = datetime.datetime(2023, 5, 24, 14, 30)
new_dt = dt + delta
print(new_dt)  # Résultat : 2023-06-03 20:00:00
        
# Soustraction de timedelta d'une date
earlier_dt = dt - delta
print(earlier_dt)  # Résultat : 2023-05-14 09:00:00

4.2 Formatage et parsing des dates et heures

Il nous est souvent nécessaire de non seulement travailler avec des dates, mais également de les transformer en une chaîne d'un certain format. Le processus inverse, lorsque nous transformons une chaîne en un objet, est généralement appelé parsing. Pour ces opérations aussi, Python propose ses propres classes et méthodes :

Méthode strftime()

La méthode strftime() est utilisée pour formater des objets datetime en chaîne selon un format spécifié.

Exemple d'utilisation :


import datetime

dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
    
# Formatage de la date et l'heure
formatted_dt = dt.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_dt)  # Résultat : 2023-05-24 14:30:45
    
# Formatage de la date uniquement
formatted_date = dt.strftime("%d-%m-%Y")
print(formatted_date)  # Résultat : 24-05-2023
    
# Formatage de l'heure uniquement
formatted_time = dt.strftime("%H:%M:%S")
print(formatted_time)  # Résultat : 14:30:45

Méthode strptime()

La méthode strptime() est utilisée pour analyser des chaînes en objets datetime selon un format spécifié.

Exemple d'utilisation :


import datetime

# Parsing d'une chaîne en un objet datetime
date_str = "24-05-2023 14:30:45"
dt = datetime.datetime.strptime(date_str, "%d-%m-%Y %H:%M:%S")
print(dt)  # Résultat : 2023-05-24 14:30:45
    
# Parsing d'une chaîne en un objet date
date_str = "24-05-2023"
d = datetime.datetime.strptime(date_str, "%d-%m-%Y").date()
print(d)  # Résultat : 2023-05-24
    
# Parsing d'une chaîne en un objet time
time_str = "14:30:45"
t = datetime.datetime.strptime(time_str, "%H:%M:%S").time()
print(t)  # Résultat : 14:30:45

4.3 Travailler avec les fuseaux horaires

En pratique, les utilisateurs de nos services viennent du monde entier et, malheureusement, ils vivent dans différents pays avec des fuseaux horaires (timezone) différents. En tant que programmeur, tu dois donc être capable de travailler avec eux aussi.

Et bien sûr, en Python, il y a une classe pour ça aussi :

La classe timezone

La classe timezone du module datetime permet de travailler avec les fuseaux horaires.


import datetime

# Création d'un objet datetime avec le fuseau horaire UTC
utc_dt = datetime.datetime(2023, 5, 24, 14, 30, 45, tzinfo=datetime.timezone.utc)
print(utc_dt)  # Résultat : 2023-05-24 14:30:45+00:00
        
# Conversion dans un autre fuseau horaire
tokyo_tz = datetime.timezone(datetime.timedelta(hours=9))
tokyo_dt = utc_dt.astimezone(tokyo_tz)
print(tokyo_dt)  # Résultat : 2023-05-24 23:30:45+09:00

Nous avons abordé la bibliothèque datetime de manière très générale, voire superficielle. Nous y reviendrons plus tard pour apprendre à l'utiliser pour des tâches plus spécifiques. Pour l'instant, je voulais simplement vous la faire découvrir et élargir, pour ainsi dire, votre regard sur l'ensemble des bibliothèques standard.

Pour toute bibliothèque, vous devez d'abord savoir qu'elle existe et avoir une idée de ce que vous pouvez faire avec elle. Vous pouvez toujours consulter la documentation officielle pour une liste des fonctions, de leurs paramètres et de toutes leurs fonctionnalités.

1
Étude/Quiz
Décorateurs, niveau 14, leçon 5
Indisponible
Décorateurs
Décorateurs
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION