Module datetime de Python

Celui de PythondatetimeLe module est le module de la bibliothèque standard pour la gestion des dates et des heures. Il fournit plusieurs classes et fonctions qui nous aident à gérer facilement des opérations telles que les dates, les heures et les différences horaires. Qu'il s'agisse d'obtenir l'heure actuelle, de formater des dates ou de calculer des différences horaires,datetimeLe module peut gérer tout cela.

Classes principales du module datetime

datetimeLe module contient les classes principales suivantes :

  • dateclasse -dateLa classe est utilisée pour représenter une date, contenant trois attributs : year, month et day.

  • timeclasse -timeLa classe est utilisée pour représenter une heure, contenant des attributs tels que hour, minute, second et microsecond.

  • datetimeclasse -datetimeLa classe est unedateettimecombinaison des deux, et peut représenter la date et l'heure simultanément.

  • timedeltaclasse -timedeltaLa classe est utilisée pour représenter une différence de temps et peut être utilisée pour les opérations d'addition et de soustraction sur les dates et les heures.


Utilisation du module datetime

Obtenir la date et l'heure actuelles

La méthode de la classedatetimemethodnow()méthode pour obtenir la date et l'heure actuelles.

Exemple

from datetime import datetime

# Obtenir la date et l'heure actuelles
now = datetime.now()
print("Heure actuelle :", now)

Exemple de sortie :

当前时间: 2025-04-22 14:30:45.123456

Créer une date et une heure spécifiques

La méthode de la classedatetimeconstructeur pour créer une date et une heure spécifiques.

Exemple

from datetime import datetime

# Créer une date et une heure spécifiques
specific_time = datetime(2025, 4, 22, 15, 30, 0)
print("Heure spécifique :", specific_time)

Exemple de sortie :

特定时间: 2025-04-22 15:30:00

Formatage de la date et de l'heure

datetimeLes objets peuvent êtrestrftime()formatés en chaîne par la méthode.

Exemple

from datetime import datetime

# Obtenir l'heure actuelle
now = datetime.now()

# Formater la sortie
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")
print("Heure formatée :", formatted_time)

Exemple de sortie :

格式化时间: 2025-04-22 14:30:45

Calcul des différences de temps

timedeltaLa classe peut être utilisée pour calculer la différence entre deux dates ou heures.

Exemple

from datetime import datetime, timedelta

# Obtenir l'heure actuelle
now = datetime.now()

# Calculer le moment 10 jours plus tard
future_time = now + timedelta(days=10)
print("Heure après 10 jours :", future_time)

Exemple de sortie :

10 天后的时间: 2025-05-02 14:30:45.123456

Cas d'utilisation courants

Calcul du nombre de jours entre deux dates

Exemple

from datetime import date

# Créer deux dates
date1 = date(2025, 4, 22)
date2 = date(2025, 5, 1)

# Calculer la différence en jours
delta = date2 - date1
print("Différence en jours entre les deux dates :", delta.days)

Exemple de sortie :

两个日期之间的天数差: 9

Gestion des fuseaux horaires

datetimeLe module lui-même ne prend pas directement en charge les opérations de fuseau horaire, mais cela peut être géré par lapytzbibliothèque pour gérer les fuseaux horaires.

Exemple

from datetime import datetime
import pytz

# Obtenir l'heure actuelle et définir le fuseau horaire
now = datetime.now(pytz.timezone('Asia/Shanghai'))
print("Heure actuelle à Shanghai :", now)

Exemple de sortie :

上海当前时间: 2025-04-22 14:30:45.123456+08:00

Classes, méthodes et attributs courants

1. Classes principales

Classe Description Exemple
datetime.date Classe Date (année, mois, jour) date(2023, 5, 15)
datetime.time Classe Time (heure, minute, seconde, microseconde) time(14, 30, 0)
datetime.datetime Classe Datetime (contient la date et l'heure) datetime(2023, 5, 15, 14, 30)
datetime.timedelta Classe d'intervalle de temps (pour les calculs de date/heure) timedelta(days=5)
datetime.tzinfo Classe de base des informations de fuseau horaire (nécessite une sous-classe pour implémenter) Classe de fuseau horaire personnalisée

2. dateMéthodes/attributs courants de l'objet

Méthode/Attribut Description Exemple
date.today() Renvoie la date locale actuelle date.today() → date(2023, 5, 15)
date.fromisoformat(str) fromYYYY-MM-DDAnalyse une date à partir d'une chaîne date.fromisoformat("2023-05-15")
date.year Année (en lecture seule) d.year → 2023
date.month Mois (1-12, en lecture seule) d.month → 5
date.day Jour (1-31, en lecture seule) d.day → 15
date.weekday() Renvoie le jour de la semaine (0=lundi, 6=dimanche) d.weekday() → 0
date.isoformat() RenvoieYYYY-MM-DDchaîne de format d.isoformat() → "2023-05-15"
date.strftime(format) Sortie formatée personnalisée d.strftime("%Y/%m/%d") → "2023/05/15"

3. timeMéthodes/attributs courants de l'objet

Méthode/Attribut Description Exemple
time.hour Heure (0-23, en lecture seule) t.hour → 14
time.minute Minute (0-59, en lecture seule) t.minute → 30
time.second Seconde (0-59, en lecture seule) t.second → 0
time.microsecond Microseconde (0-999999, en lecture seule) t.microsecond → 0
time.isoformat() RenvoieHH:MM:SS.mmmmmmchaîne de format t.isoformat() → "14:30:00"
time.strftime(format) Sortie formatée personnalisée t.strftime("%H:%M") → "14:30"

4. datetimeMéthodes/attributs courants de l'objet

Méthode/Attribut Description Exemple
datetime.now() Renvoie la date et l'heure locales actuelles datetime.now() → datetime(2023, 5, 15, 14, 30, 0)
datetime.utcnow() Renvoie la date et l'heure UTC actuelles datetime.utcnow()
datetime.fromtimestamp(ts) Crée à partir d'un horodatagedatetimeobjet datetime.fromtimestamp(1684146600)
datetime.timestamp() Renvoie l'horodatage (secondes en nombre flottant) dt.timestamp() → 1684146600.0
datetime.date() Extrait la partie date dt.date() → date(2023, 5, 15)
datetime.time() Extrait la partie heure dt.time() → time(14, 30)
datetime.year Année (identique àdate) dt.year → 2023
datetime.strftime(format) Sortie formatée personnalisée dt.strftime("%Y-%m-%d %H:%M") → "2023-05-15 14:30"

5. timedeltaAttributs courants de l'objet

Attribut Description Exemple
days Jours (peuvent être positifs ou négatifs) delta.days → 5
seconds Secondes (0-86399) delta.seconds → 3600(1 heure)
microseconds Microsecondes (0-999999) delta.microseconds → 0

6. Symboles de formatage courants (strftime)

Symbole Description Exemple de sortie
%Y Année à quatre chiffres 2023
%m Mois à deux chiffres (01-12) 05
%d Jour à deux chiffres (01-31) 15
%H Heure au format 24 heures (00-23) 14
%M Minute (00-59) 30
%S Seconde (00-59) 00
%A Nom complet du jour de la semaine Monday
%a Nom abrégé du jour de la semaine Mon
%B Nom complet du mois May
%b Nom abrégé du mois May

Exemple

1. Calculer la différence entre les dates

Exemple

from datetime import date, timedelta

d1 = date(2023, 5, 15)
d2 = date(2023, 6, 1)
delta = d2 - d1  # Renvoie un objet timedelta
print(delta.days)  # Sortie : 17

2. Addition et soustraction de temps

Exemple

from datetime import datetime, timedelta

now = datetime.now()
future = now + timedelta(days=3, hours=2)
print(future.strftime("%Y-%m-%d %H:%M"))

3. Conversion de fuseau horaire (nécessite l'installation de pytz)

Exemple

from datetime import datetime
import pytz

utc_time = datetime.utcnow().replace(tzinfo=pytz.utc)
beijing_time = utc_time.astimezone(pytz.timezone("Asia/Shanghai"))
print(beijing_time)

4. Analyse de chaînes

Exemple

from datetime import datetime

dt = datetime.strptime("2023-05-15 14:30", "%Y-%m-%d %H:%M")
print(dt.year)  # Sortie : 2023

Notes

  1. Immuabilité: Tousdatetimeles objets sont immuables ; les opérations renvoient de nouveaux objets.

  2. Gestion des fuseaux horaires: Nativedatetimene prend pas en charge les fuseaux horaires ; utilisezpytzou celle de Python 3.9+zoneinfo。

  3. Performance: la création fréquente d'objets peut affecter les performances ; envisagez de réutiliser ou de mettre en cache.

  4. Vérification des limites: les dates invalides (telles quedate(2023, 2, 30)) déclencherontValueError。

Autres extensions