Le Module Datetime En Python

1 - A propos du module datetime Python

En Python, la date et l'heure ne sont pas un type de données en soi, mais un module nommé datetime peut être importé pour fonctionner avec la date ainsi que l'heure. Le module Datetime est intégré à Python, il n'est donc pas nécessaire de l'installer en externe.

Le module Datetime fournit des classes pour travailler avec la date et l'heure. Ces classes fournissent un certain nombre de fonctions pour gérer les dates, les heures et les intervalles de temps. La date et l'heure sont un objet en Python, donc lorsque vous les manipulez, vous manipulez en fait des objets et non des chaînes ou des horodatages.

2 - Les classes associées au module datetime

Les classes datetime sont classées en 6 classes principales:



  1. date - Une date naïve idéalisée. Ses attributs sont l'année, le mois et le jour.
  2. time - Un temps idéalisé, indépendant de tout jour particulier, en supposant que chaque jour a exactement 24 * 60 * 60 secondes. Ses attributs sont heure, minute, seconde, microseconde.
  3. datetime - C'est une combinaison de date et d'heure avec les attributs année, mois, jour, heure, minute, seconde, microseconde et tzinfo.
  4. timedelta - Durée exprimant la différence entre deux instances de date, d'heure ou de datetime à une résolution en microsecondes.
  5. tzinfo - Il fournit des objets d'information de fuseau horaire.
  6. timezone - Une classe qui implémente la classe de base abstraite tzinfo comme un décalage fixe par rapport à l'UTC.

3 - La classe date

Lorsqu'un objet de cette classe est instancié, il représente une date au format AAAA-MM-JJ. Le constructeur de cette classe a besoin de trois arguments obligatoires année, mois et date.

Syntaxe du constructeur:

objetDate =  datetime.date (année, mois, jour)

Exemple

# coding: utf-8
# importation de la classe date
from datetime import date 

# création de l'ojet date
# la date de l'examen est :
dateExam = date(2020, 6, 22) 

print("La date de l'examen de fin d'année scolaire est : ", dateExam) 
# Affiche : La date de l'examen de fin d'année scolaire est :  2020-06-22

Remarque

Une date non valide, génère une erreur  vous indiquant que la date est non valide. Exemple si vous mettez la valeur day = 35, vous obtenez  : builtins.ValueError: day is out of range for month

Date actuelle

Pour retourner la date  actuelle, on utilise la fonction today () de la classe date. La fonction today() est livrée avec plusieurs attributs (année, mois et jour):

Exemple

# coding: utf-8
# importation de la classe date  
from datetime import date 
  
# obtenir le jour 
today = date.today() 
  
print("Today's date is", today) 
  
# affichage de composants de la date d'aujourd'hui. 
print( "\n Année: " ,today.year, "\n mois",today.month, "\n jour :" ,today.day) 

 4 - Les méthodes associées à la classe date

Les différentes fonctions disponibles dans la classe de date sont:

  1. fromtimestamp (timestamp) :  retourne la date locale correspondant à l'horodatage POSIX
  2. fromordinal (ordinal) :  renvoie la date correspondant à l'ordinal grégorien proleptique, où le 1er janvier de l'année 1 a l'ordinal 1.
  3. fromisoformat (date_string) :  retourne une date correspondant à une date_string donnée au format AAAA-MM-JJ:
  4. fromisocalendar (année, semaine, jour)  :  renvoie une date correspondant à la date du calendrier ISO spécifiée par année, semaine et jour.

5 - La classe Tzinfo

Il s'agit d'une classe de base abstraite, ce qui signifie que cette classe ne doit pas être instanciée directement. Une instance de (une sous-classe concrète de) tzinfo peut être transmise aux constructeurs pour les objets datetime et time. Ces derniers objets voient leurs attributs comme étant dans l'heure locale, et l'objet tzinfo prend en charge les méthodes révélant le décalage de l'heure locale par rapport à UTC, le nom du fuseau horaire et le décalage DST, le tout par rapport à un objet de date ou d'heure qui leur est transmis.

6 - La classe timezone (classe de fuseau horaire)





La classe de fuseau horaire timezone est une sous-classe de tzinfo, dont chaque instance représente un fuseau horaire défini par un décalage fixe par rapport à l'UTC.

Syntaxe du constructeur:

classe datetime.timezone (offset, name = None)

L'argument offset doit être spécifié comme un objet timedelta représentant la différence entre l'heure locale et UTC.

Remarque

ValueError sera générée si le décalage ne se trouve pas dans l'intervalle timedelta (heures = 24).

7 - La classe time

La classe time  représente l'heure locale, indépendamment de n'importe quel jour.

Syntaxe du constructeur:

timeObject = datetime.time (heure = 0, minute = 0, seconde = 0, microseconde = 0, tzinfo = None, *, fold = 0)
Rrmarque

Tous les arguments  dans l'instanciation timeObject = datetime.time(....), sont facultatifs!

Exemple

# coding: utf-8
from datetime import time 
  
# choisir le temps à l'aide du constructeur
mytime = time(17, 15, 45) 
  
print("temps choisie : ", mytime) 
  
# choisir la minute
mytime = time(minute = 35) 
print("minute choisie", mytime) 
 
# choisir l'heure
mytime = time(hour  = 10) 
print("heure choisie : " , mytime)

# heure sans paramètres
mytime = time() 
print("aucun paramètre choisi : ", mytime) 

Ce qui affiche après exécution:

temps choisi : 17:15:45
minute choisie 00:35:00
heure choisie : 10:00:00
aucun paramètre choisi : 00:00:00

Exemple: décomposer un objet time en: heures , minutes, secondes

# coding: utf-8
from datetime import time 
 
# création d'un objet time
myTime = time(10, 45, 51) 
  
print("Heure : ", myTime.hour) 
print("minute  : ", myTime.minute) 
print("secondes  : ",  myTime.second) 

8 - La classe datetime

Cette classes contient les informations concernant  la date et l'heure.

Syntaxe du constructeur:

datetieObject = datetime.datetime (paramètres)

Exemple

# coding: utf-8

from datetime import datetime

# Initialisation du constructeur
dTime = datetime (2018, 11, 25)
print(dTime)

# création d'un objet datetime avec paramètres de temps
dTime = datetime (2018, 11, 25, 11, 20, 45, 214150)
print(dTime)

Ce qui affiche à la sortie:

2018-11-25 00:00:00
2018-11-25 11:20:45.214150

Exemple: décomposition de l'objet datetime en année, mois, jour, heure...

# coding: utf-8
from datetime import datetime 

dTime = datetime (2018, 11, 25, 11, 20, 45, 214150)
# décomposition de l'objet dTime en année, mois, jour, heure...
print("Année : ", dTime.year) 
print("mois : ", dTime.month) 
print("jour : " , dTime.day)
print("heure : ", dTime.hour) 
print("minute =", dTime.minute) 
print("timestamp  : ", dTime.timestamp()) 

Ce qui affiche à la sortie:

Année : 2018
mois : 11
jour : 25
heure : 11
minute = 20
Secondes : 45

Date et heure actuelles

La méthode now() de l'objet datetime, renvoie la date et l'heure locales actuelles. Pour obtenir  la date et l'heure actuelles, on utilise  la fonction now().

 

# coding: utf-8
from datetime import datetime

# Obtenir la date et l'heure actuels
tempsActuel = datetime.now()
print("Date & heure actuels : " , tempsActuel)

Sortie:

Date & heure actuels : 2020-04-15 12:41:43.573886

On peut aussi obtenir la date et heure actuelle d'une façon décomposée en accédant aux méthodes : year, month , day, hour, ... de l'objet datetime:

Exemple

# coding: utf-8

from datetime import datetime

# Obtenir la date et l'heure actuels
tempsActuel = datetime.now()
print("Année actuelle : " , tempsActuel.year)
print("mois actuel : " , tempsActuel.month)
print("jour actuel : " , tempsActuel.day)
print("heure actuelle : " , tempsActuel.hour)
print("minute actuelle : " , tempsActuel.minute)
print("Seconde actuelle : " , tempsActuel.second)

Ce qui affiche après exécution:

Année actuelle : 2020
mois actuel : 4
jour actuel : 15
heure actuelle : 12
minute actuelle : 47
Seconde actuelle : 39

 

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply