Le module datetime en python
Sommaire
- 1- Objectifs
- 2- Présentation
- 3- Date de sortie
- 4- Les types de classe datetime
- 4.1- classe datetime.date
- 4.2- classe datetime.datetime
- 4.3- classe datetime.time
- 4.4- classe datetime.timedelta
- 4.5- classe datetime.tzinfo
- 4.6- classe datetime.timezone
- 5- Opérations sur les dates en Python
- 6- La fonction
datetime.timedelta()
- 7- Applications
- 7.1.1- Sommaire du cours Python
Le module datetime en python
-
Objectifs
- Gérer les dates et heures en python
-
Présentation
- Une date en Python n’est pas un type de données en soi, mais nous pouvons importer un module nommé
datetime
pour travailler avec les dates en tant qu’objets de date. Datetime
est un module qui permet de manipuler des dates et des durées sous forme d’objets.- On manipule l’objet pour faire des calculs, et quand on a besoin de l’afficher, on formate l’objet en chaîne de caractères.
- Le module
datetime
propose plusieurs classes pour représenter des dates et heures. - Le module
datetime
fournit un certain nombre de types permettant de traiter les dates, les heures et les intervalles de temps. - Le module
datetime
fournit une classe datetime qui permet de faire des opérations et des comparaisons sur les dates et les heures. - On peut créer artificiellement un objet
datetime
, ses paramètres sont: datetime(année, mois, jour, heure, minute, seconde, microseconde, fuseau horaire)
- Mais seuls « année », « mois » et « jour » sont obligatoires.
-
Date de sortie
- L’exécution du code de l’exemple ci-dessus, nous donne:
- 2019-05-06 17:47:20.617744
- 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.
-
Les types de classe datetime
datetime
complète le moduletime
en fournissant des objets de plus haut niveau,soit :-
classe datetime.date
- La date Python est une date naïve idéalisée par rapport au calendrier grégorien actuel. Ces attributs: année, mois et jour.
-
classe datetime.datetime
- Un objet datetime représente une date et l’heure, delon le calendrier Gregorian..
-
classe datetime.time
- Un objet time représente le temps (time), à l’exception de la date (date).
- Le temps Python est un temps idéalisé, indépendant de tout jour particulier. Ici, nous supposons que chaque jour est constitué d’exactement 24 * 60 * 60 secondes (pas de secondes intercalaires).Ces attributs: heure, minute, seconde, microseconde et tzinfo.
-
classe datetime.timedelta
- Un timedelta est une durée exprimant la différence entre deux instances de date, heure ou date / heure en résolution en microsecondes.
- La classe
timedelta
sert à représenter une durée. - Les instances de cette classe supportent entre elles l’addition, la soustraction, le changement de signe et l’opérateur abs(), et peuvent être utilisées dans des opérations avec les classes time, date et datetime.
-
classe datetime.tzinfo
- Le tzinfo est une classe abstraite de base (base abstract class) pour les objets d’information de fuseau horaire (timezone).
-
classe datetime.timezone
- Un timezone implémente la classe de base abstraite
tzinfo
en tant que décalage fixe par rapport à l’UTC. -
Opérations sur les dates en Python
- L’objet
datetime
autorise les soustractions et les comparaisons entre deux dates. - Une soustraction retourne un objet de type
timedelta
qui correspond à une durée qu’on peut multiplier par un réel ou ajouter à un objet de même type ou à un objet de typedatetime
. - L’utilisation de ce type d’objet évite de se pencher sur tous les problèmes de conversion.
- La classe
timedelta
sert à représenter une durée. - Les instances de cette classe supportent entre elles l’addition, la soustraction, le changement de signe et l’opérateur
abs()
, et peuvent être utilisées dans des opérations avec les classes time, date et datetime. - En plus de pouvoir récupérer la date du jour, on peut calculer la différence entre deux dates. Par exemple, combien de temps y a-t-il entre aujourd’hui et le premier jour de l’année 2010 ?
- Le résultat est de type
timedelta
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
-
La fonction
datetime.timedelta()
- La fonction Python
datetime.timedelta()
est présente sous la bibliothèque datetime qui est généralement utilisée pour calculer les différences de dates et peut également être utilisée pour les manipulations de date en Python. C’est l’un des moyens les plus simples d’effectuer des manipulations de date. - Syntaxe:
datetime.timedelta (jours = 0, secondes = 0, microsecondes = 0, millisecondes = 0, minutes = 0, heures = 0, semaines = 0)
Renvoie: Date - Exemple: Ajout/différence 2ans ,2mois et 2 jours à la date actuelle
timedelta
Python avec date et heuretimedelta
prend également en charge l’addition et la soustraction avec l’objetdate
.-
Applications
- Ecrivez un programme Python pour obtenir les informations de date et l’heure actuelles.
- Ecrivez un programme Python qui calcule l’âge d’une personne née le 23 Octobre 2011.
- Écrivez un script Python pour afficher les différents formats de date et d’heure.
- a) Date et heure actuelles
- b) Année courante
- c) Mois de l’année
- d) Numéro de la semaine de l’année
- e) Jour de la semaine
- f) Jour de l’année
- g) Jour du mois
- h) Jour de la semaine
- Écrivez un script Python pour afficher dix dates, chacune d’eux par semaine, le début de chaque semaine commence à partir d’aujourd’hui, sous la forme JJ-MM-AAAA.
import datetime
laDate = datetime.datetime.now()
print(laDate)
2019-05-06 17:43:11.735685
# 1- importer les modules de date, time, datetime
from datetime import date, time, datetime
duree = datetime.now() - datetime(2010, 1, 1)
print(duree)
# ce qui donne : 3883 days, 15:19:44.088885
# 1- importer les modules de date, time, datetime
from datetime import datetime, timedelta
# Utiliser datetime
maintenant = datetime.now()
# Afficher la date courante
print ("Maintenant est : ", str(maintenant))
# Calculer les future dates
# Ajout de deux ans
prochaine_date_apres_2ans = maintenant + timedelta(days = 730)
# Ajout de deux mois
prochaine_date_apres_2mois = maintenant + timedelta(days = 61)
# Ajout de deux jours
prochaine_date_apres_2jours = maintenant + timedelta(days = 2)
# Calculer les dates antérieures
# Avant deux ans
anterieure_date_avant_2ans = maintenant - timedelta(days = 730)
# Avant deux mois
anterieure_date_avant_2mois = maintenant - timedelta(days = 61)
# Avant deux jours
anterieure_date_avant_2jours = maintenant - timedelta(days = 2)
# printing calculated future_dates
print('Prochaine date après 2 ans sera :', str(prochaine_date_apres_2ans))
print('Prochaine date après 2 mois sera :', str(prochaine_date_apres_2mois))
print('Prochaine date après 2 jours sera :', str(prochaine_date_apres_2jours))
print('Anterieure_date_avant 2 ans sera :', str(anterieure_date_avant_2ans))
print('Anterieure_date_avant 2 mois sera :', str(anterieure_date_avant_2mois))
print('Anterieure_date_avant 2 jours sera :', str(anterieure_date_avant_2jours))
# 1- importer les modules de date, time, datetime
from datetime import datetime, timedelta
current_datetime = datetime.now()
dt = current_datetime.date()
print('Date courant :', dt)
dt_tomorrow = dt + timedelta(days=1)
print('Date de demain:', dt_tomorrow)
L’objet
timedelta
Python est très utile pour les manipulationsdatetime
. La prise en charge des opérateurs arithmétiques de base le rend très facile à utiliser.
import time
import datetime
print()
print("Temps en secondes depuis l'époque: %s" %time.time())
print("Date et heure actuelles: " , datetime.datetime.now())
print("Autre date et heure: " ,datetime.datetime.now().strftime("%y-%m-%d-%H-%M"))
print("Année en cours: ", datetime.date.today().strftime("%Y"))
print("Mois de l'année en cours: ", datetime.date.today().strftime("%B"))
print("Numéro de semaine de l'année en cours: ", datetime.date.today().strftime("%W"))
print("Jour de la semaine: ", datetime.date.today().strftime("%w"))
print("Jour de l'année: ", datetime.date.today().strftime("%j"))
print("Jour du mois : ", datetime.date.today().strftime("%d"))
print("Jour de la semaine: ", datetime.date.today().strftime("%A"))
print()
Sortie
Temps en secondes depuis l’époque: 1557215777.4772093
Date et heure actuelles: 2019-05-07 08:56:17.485209
Autre date et heure: 19-05-07-08-56
Année en cours: 2019
Mois de l’année en cours: May
Numéro de semaine de l’année en cours: 18
Jour de la semaine: 2
Jour de l’année: 127
Jour du mois : 07
Jour de la semaine: Tuesday
Date et heure actuelles: 2019-05-07 08:56:17.485209
Autre date et heure: 19-05-07-08-56
Année en cours: 2019
Mois de l’année en cours: May
Numéro de semaine de l’année en cours: 18
Jour de la semaine: 2
Jour de l’année: 127
Jour du mois : 07
Jour de la semaine: Tuesday
import datetime
naissance = datetime.datetime(2011, 10, 23, 10, 0, 0)
jour = naissance.now() # obtient l'heure et la date actuelle
print(jour) # affiche quelque chose comme 2019-05-07 17:59:36.312000
age = jour - naissance # calcule une différence
print(age)
Sortie
2019-05-07 18:01:02.954453
2753 days, 8:01:02.954453
2753 days, 8:01:02.954453
import time
import datetime
print("Date et heure actuelles: " , datetime.datetime.now())
print("Année actuelle: ", datetime.date.today().strftime("%Y"))
print("Mois de l'année: ", datetime.date.today().strftime("%B"))
print("Numéro de semaine de l'année: ", datetime.date.today().strftime("%W"))
print("Jour de la semaine: ", datetime.date.today().strftime("%w"))
print("Jour de l'année : ", datetime.date.today().strftime("%j"))
print("Jour du mois : ", datetime.date.today().strftime("%d"))
print("Jour de la semaine: ", datetime.date.today().strftime("%A"))
Exemple: Si Aujourd’hui est 17-09-2020 on aura comme résultat:
17-09-2020 24-09-2020 01-10-2020 08-10-2020 15-10-2020 22-10-2020 29-10-2020 05-11-2020 12-11-2020 19-11-2020
import datetime
today = datetime.datetime.today()
for w in range(10):
day = today + datetime.timedelta(weeks=w)
print(day.strftime("%d-%m-%Y"))