Manipulation des dates en Python
Cet article explique la manipulation des dates en Python.
YouTube Video
Manipulation des dates en Python
La manipulation des dates en Python utilise principalement le module datetime
. Ce module fournit différentes classes et fonctions pour manipuler les dates et les heures.
Voici quelques exemples de manipulation basique des dates en utilisant le module datetime
.
Obtenir la date et l'heure
Vous pouvez obtenir la date et l'heure actuelles comme suit. datetime.now()
et datetime.today()
renvoient presque le même résultat, mais il peut y avoir des différences dans la gestion des fuseaux horaires.
1from datetime import datetime
2
3# Get the current date and time
4now = datetime.now()
5print(f"Current date and time: {now}")
6
7# Get today's date only
8today = datetime.today()
9print(f"Today's date: {today.date()}")
- Ce code récupère et affiche la date et l'heure actuelles, ainsi que seulement la date d'aujourd'hui.
Créer des dates et heures spécifiques
Vous pouvez créer une date et une heure spécifiques comme suit.
1from datetime import datetime
2
3# Create a specific date and time
4specific_date = datetime(2023, 11, 7, 10, 30, 45)
5print(f"Specified date and time: {specific_date}")
- Ce code crée et affiche la date et l'heure spécifiées (7 novembre 2023, 10:30:45).
Formatage des dates
Le formatage de la date peut se faire comme suit.
1from datetime import datetime
2
3now = datetime.now()
4
5# Format the date
6formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
7print(f"Formatted date and time: {formatted_date}")
- Ce code obtient la date et l'heure actuelles, les formate selon le format spécifié à l'aide de
strftime
, puis les affiche.
Chaînes de format de date
%Y
: Année (4 chiffres)%m
: Mois (01 à 12)%d
: Jour (01 à 31)%H
: Heure (00 à 23)%M
: Minute (00 à 59)%S
: Seconde (00 à 59)
Analyse de chaînes de dates
Vous pouvez convertir une chaîne représentant une date en objet datetime
.
1from datetime import datetime
2
3date_string = "2023-11-07 10:30:45"
4parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
5print(f"Parsed date and time: {parsed_date}")
- Ce code convertit une date représentée sous forme de chaîne en objet
datetime
grâce àstrptime()
, puis l'affiche.
Calcul des dates
L'arithmétique sur les dates peut être effectuée comme suit.
1from datetime import datetime, timedelta
2
3now = datetime.now()
4
5# Date for one day later
6tomorrow = now + timedelta(days=1)
7print(f"Date for one day later: {tomorrow}")
8
9# Date for one week ago
10last_week = now - timedelta(weeks=1)
11print(f"Date for one week ago: {last_week}")
12
13# Time for two hours later
14in_two_hours = now + timedelta(hours=2)
15print(f"Time for two hours later: {in_two_hours}")
- Ce code utilise
timedelta
pour ajouter ou soustraire des jours et des heures à la date et l'heure actuelles, en calculant et affichant la date et l'heure de demain, il y a une semaine, et dans deux heures.
Gestion des fuseaux horaires
Vous pouvez également gérer les fuseaux horaires avec le module datetime
.
1from datetime import datetime, timezone, timedelta
2
3# Current UTC time
4utc_now = datetime.now(timezone.utc)
5print(f"Current UTC time: {utc_now}")
6
7# JST (UTC+9)
8jst = timezone(timedelta(hours=9))
9jst_now = datetime.now(jst)
10print(f"Current JST time: {jst_now}")
- Par défaut,
datetime
renvoie un 'datetime naïf' (sans information de fuseau horaire). Vous pouvez gérer explicitement les fuseaux horaires en utilisant la classetimezone
ouzoneinfo
.
La classe date et la classe time
Avec le module datetime
, vous pouvez aussi manipuler uniquement des dates ou uniquement des heures.
1from datetime import date, time
2
3d = date(2023, 11, 7)
4t = time(10, 30, 45)
5
6print(f"Date only: {d}")
7print(f"Time only: {t}")
- La classe
date
ne gère que les dates, et la classetime
ne gère que les heures.
Conversion entre datetime
et timestamp
La conversion entre les timestamps UNIX et les objets datetime
est possible. Ici, un timestamp UNIX fait référence au nombre de secondes écoulées depuis le 1er janvier 1970.
1from datetime import datetime
2
3now = datetime.now()
4
5# datetime → timestamp
6timestamp = now.timestamp()
7print(f"Timestamp: {timestamp}")
8
9# timestamp → datetime
10restored = datetime.fromtimestamp(timestamp)
11print(f"Restored datetime: {restored}")
- Ce code convertit la date et l'heure actuelles en un timestamp UNIX, puis utilise la fonction
fromtimestamp()
pour convertir ce timestamp en objetdatetime
.
Pièges courants
Lorsque vous utilisez le module datetime
, vous devez faire attention aux points suivants.
datetime.now()
ne prend pas en compte les fuseaux horaires, donc pour l'internationalisation, vous devez explicitement utilisertimezone.utc
.- Faites attention à ne pas confondre
%m
(mois) et%M
(minute) dans les chaînes de format.
Résumé
Le module datetime
propose également de nombreuses autres fonctionnalités pour une manipulation flexible des dates et des heures. De plus, des classes comme date
, time
, et timedelta
sont disponibles, spécialisées pour des opérations spécifiques.
L'utilisation d'autres bibliothèques permet également une manipulation des dates plus avancée. Par exemple, pandas
est spécialisé dans le traitement des séries chronologiques, tandis que dateutil
est adapté à l'analyse complexe des dates. De plus, la bibliothèque arrow
est également utile.
Vous pouvez suivre l'article ci-dessus avec Visual Studio Code sur notre chaîne YouTube. Veuillez également consulter la chaîne YouTube.