logo

Module date-heure Python

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

Dans cet article, nous explorerons comment DateHeure en Python fonctionne et quelles sont les principales classes du module DateTime en Python.

Table des matières



Module Python DateHeure

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

Le module DateTime est classé en 6 classes principales –

  • date – Une date naïve idéalisée, en supposant que le calendrier grégorien actuel a toujours été et sera toujours en vigueur. Ses attributs sont l'année, le mois et le jour. vous pouvez vous référer à – Python DateTime – Classe de date
  • temps – Un temps idéalisé, indépendant de tout jour particulier, en supposant que chaque jour compte exactement 24*60*60 secondes. Ses attributs sont l'heure, la minute, la seconde, la microseconde et tzinfo. Vous pouvez vous référer à – Python DateTime – Classe de temps
  • date-heure – Il s’agit d’une combinaison de date et d’heure ainsi que des attributs année, mois, jour, heure, minute, seconde, microseconde et tzinfo. Vous pouvez vous référer à – Python DateTime – Classe DateTime
  • écart de temps – Une durée exprimant la différence entre deux instances de date, d’heure ou de date/heure avec une résolution en microsecondes. Vous pouvez vous référer à – Python DateTime – Classe Timedelta
  • tzinfo – Il fournit des objets d’informations sur le fuseau horaire. Vous pouvez vous référer à – Python – datetime.tzinfo()
  • fuseau horaire – Une classe qui implémente la classe de base abstraite tzinfo en tant que décalage fixe par rapport à l'UTC (Nouveau dans la version 3.2). Vous pouvez vous référer à – Gestion du fuseau horaire en Python

Classe de dates Python

La classe date est utilisée pour instancier des objets date en Python. 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 de la classe Date Python

class datetime.date(year, month, day)>

Les arguments doivent être dans la plage suivante –

  • MINIYEAR <= année <= MAXYEAR
  • 1 <= mois <= 12
  • 1 <= jour <= nombre de jours dans le mois et l'année donnés

Note – Si l’argument n’est pas un nombre entier, une TypeError sera générée et s’il est en dehors de la plage, une ValueError sera générée.

Objet date représentant des données en Python

Initialisation du constructeur et transmission des arguments au format année, mois et date.

Python3




# Python program to> # demonstrate date class> # import the date class> from> datetime>import> date> my_date>=> date(>1996>,>12>,>11>)> print>(>'Date passed as argument is'>, my_date)> # Uncommenting my_date = date(1996, 12, 39)> # will raise an ValueError as it is> # outside range> # uncommenting my_date = date('1996', 12, 11)> # will raise a TypeError as a string is> # passed instead of integer>

>

>

Sortir:

Date passed as argument is 1996-12-11>
Traceback (most recent call last):  File '/home/ccabfb570d9bd1dcd11dc4fe55fd6ba2.py', line 14, in   my_date = date(1996, 12, 39) ValueError: day is out of range for month  Traceback (most recent call last):  File '/home/53b974e10651f1853eee3c004b48c481.py', line 18, in   my_date = date('1996', 12, 11) TypeError: an integer is required (got type str)>

Obtenez la date actuelle

Pour renvoyer la date locale actuelle, la fonction Today() de la classe date est utilisée. La fonction Today() est livrée avec plusieurs attributs (année, mois et jour). Ceux-ci peuvent être imprimés individuellement.

Python3




# Python program to> # print current date> from> datetime>import> date> # calling the today> # function of date class> today>=> date.today()> print>(>'Today's date is'>, today)>

>

>

Sortir

Today's date is 2021-08-19>

Obtenez l'année, le mois et la date d'aujourd'hui

Nous pouvons obtenir les attributs année, mois et date de l’objet date en utilisant l’attribut année, mois et date de la classe date.

Python3




from> datetime>import> date> # date object of today's date> today>=> date.today()> print>(>'Current year:'>, today.year)> print>(>'Current month:'>, today.month)> print>(>'Current day:'>, today.day)>

>

>

Sortir

Current year: 2021 Current month: 8 Current day: 19>

Obtenir la date à partir de l'horodatage

Nous pouvons créer des objets date à partir d’horodatages y=en utilisant la méthode fromtimestamp(). L'horodatage est le nombre de secondes écoulées entre le 1er janvier 1970 à UTC et une date particulière.

Python3




chaîne à char en java
from> datetime>import> datetime> # Getting Datetime from timestamp> date_time>=> datetime.fromtimestamp(>1887639468>)> print>(>'Datetime from timestamp:'>, date_time)>

>

>

Sortir

Datetime from timestamp: 2029-10-25 16:17:48>

Convertir la date en chaîne

Nous pouvons convertir un objet date en une représentation sous forme de chaîne en utilisant deux fonctions isoformat() et strftime().

Python3




from> datetime>import> date> > # calling the today> # function of date class> today>=> date.today()> > # Converting the date to the string> Str> => date.isoformat(today)> print>(>'String Representation'>,>Str>)> print>(>type>(>Str>))>

char et int java

>

>

Sortir

String Representation 2021-08-19>

Liste des méthodes de classe de date

Nom de la fonction

Description

ctime() Renvoie une chaîne représentant la date
depuisisocalendrier() Renvoie une date correspondant au calendrier ISO
depuisisoformat() Renvoie un objet date à partir de la représentation sous forme de chaîne de la date
deordinal() Renvoie un objet date de l'ordinal grégorien proleptique, où le 1er janvier de l'année 1 a l'ordinal 1
à partir de l'horodatage() Renvoie un objet date à partir de l'horodatage POSIX
isocalendrier() Renvoie un tuple année, semaine et jour de la semaine
isoformat() Renvoie la représentation sous forme de chaîne de la date
isoweekday() Renvoie le jour de la semaine sous forme d'entier où lundi vaut 1 et dimanche vaut 7
remplacer() Modifie la valeur de l'objet date avec le paramètre donné
strftime() Renvoie une représentation sous forme de chaîne de la date avec le format donné
timetuple() Renvoie un objet de type time.struct_time
aujourd'hui() Renvoie la date locale actuelle
toordinal() Renvoie l'ordinal grégorien proleptique de la date, où le 1er janvier de l'année 1 a l'ordinal 1
jour de la semaine() Renvoie le jour de la semaine sous forme d'entier où lundi vaut 0 et dimanche vaut 6

Classe de temps Python

La classe time crée l'objet time qui représente l'heure locale, indépendamment de tout jour.

Syntaxe du constructeur :

classe datetime.time (heure = 0, minute = 0, seconde = 0, microseconde = 0, tzinfo = Aucun, *, repli = 0)

Tous les arguments sont facultatifs. tzinfo peut être Aucun, sinon tous les attributs doivent être des nombres entiers dans la plage suivante :

  • 0 <= heure < 24
  • 0 <= minute < 60
  • 0 <= seconde < 60
  • 0 <= microseconde < 1000000
  • plier [0, 1]

Exemple 1 : objet Time représentant le temps en Python

Python3




# Python program to> # demonstrate time class> from> datetime>import> time> # calling the constructor> my_time>=> time(>13>,>24>,>56>)> print>(>'Entered time'>, my_time)> # calling constructor with 1> # argument> my_time>=> time(minute>=>12>)> print>(>' Time with one argument'>, my_time)> # Calling constructor with> # 0 argument> my_time>=> time()> print>(>' Time without argument'>, my_time)> # Uncommenting time(hour = 26)> # will rase an ValueError as> # it is out of range> # uncommenting time(hour ='23')> # will raise TypeError as> # string is passed instead of int>

>

>

Sortir:

Entered time 13:24:56  Time with one argument 00:12:00  Time without argument 00:00:00>
Traceback (most recent call last):  File '/home/95ff83138a1b3e67731e57ec6dddef25.py', line 21, in   print(time(hour=26)) ValueError: hour must be in 0..23  Traceback (most recent call last):  File '/home/fcee9ba5615b0b74fc3ba39ec9a789fd.py', line 21, in   print(time(hour='23')) TypeError: an integer is required (got type str)>

Exemple 2 : obtenir des heures, des minutes, des secondes et des microsecondes

Après avoir créé un objet temporel, ses attributs peuvent également être imprimés séparément.

Python3




from> datetime>import> time> Time>=> time(>11>,>34>,>56>)> print>(>'hour ='>, Time.hour)> print>(>'minute ='>, Time.minute)> print>(>'second ='>, Time.second)> print>(>'microsecond ='>, Time.microsecond)>

>

>

Sortir:

hour = 11 minute = 34 second = 56 microsecond = 0>

Exemple 3 : Convertir un objet Time en chaîne

Nous pouvons convertir un objet temporel en chaîne en utilisant la méthode isoformat().

Python3




from> datetime>import> time> # Creating Time object> Time>=> time(>12>,>24>,>36>,>1212>)> # Converting Time object to string> Str> => Time.isoformat()> print>(>'String Representation:'>,>Str>)> print>(>type>(>Str>))>

>

>

Sortir

String Representation: 12:24:36.001212>

Liste des méthodes de classe Time

Nom de la fonction

Description

heure d'été() Renvoie tzinfo.dst() si tzinfo n'est pas Aucun
depuisisoformat() Renvoie un objet temporel à partir de la représentation sous forme de chaîne de l'heure
isoformat() Renvoie la représentation sous forme de chaîne de l'heure à partir de l'objet time
remplacer() Modifie la valeur de l'objet temporel avec le paramètre donné
strftime() Renvoie une représentation sous forme de chaîne de l'heure avec le format donné
tzname() Renvoie tzinfo.tzname() si tzinfo n'est pas Aucun
utcoffset() Renvoie tzinfo.utcffsets() si tzinfo n'est pas Aucun

Classe Python DateHeure

Le Classe DateHeure contient des informations sur la date et l’heure. Comme un objet date, datetime suppose le calendrier grégorien actuel étendu dans les deux sens ; comme un objet temporel, datetime suppose qu'il y a exactement 3600*24 secondes dans chaque jour.

Syntaxe du constructeur :

classe datetime.datetime (année, mois, jour, heure = 0, minute = 0, seconde = 0, microseconde = 0, tzinfo = Aucun, *, repli = 0)

Les arguments année, mois et jour sont obligatoires. tzinfo peut être Aucun, sinon tous les attributs doivent être un nombre entier compris dans la plage suivante :

  • MINIYEAR <= année <= MAXYEAR
  • 1 <= mois <= 12
  • 1 <= jour <= nombre de jours dans le mois et l'année donnés
  • 0 <= heure < 24
  • 0 <= minute < 60
  • 0 <= seconde < 60
  • 0 <= microseconde < 1000000
  • plier [0, 1]

Note – Passer un argument autre qu’un entier déclenchera une TypeError et passer des arguments en dehors de la plage déclenchera une ValueError.

Objet DateTime représentant DateTime en Python

Python3




# Python program to> # demonstrate datetime object> from> datetime>import> datetime> # Initializing constructor> a>=> datetime(>1999>,>12>,>12>)> print>(a)> # Initializing constructor> # with time parameters as well> a>=> datetime(>1999>,>12>,>12>,>12>,>12>,>12>,>342380>)> print>(a)>

>

>

Sortir:

1999-12-12 00:00:00 1999-12-12 12:12:12.342380>

Obtenez l'année, le mois, l'heure, les minutes et l'horodatage

Après avoir créé un objet DateTime, ses attributs peuvent également être imprimés séparément.

Python3




from> datetime>import> datetime> a>=> datetime(>1999>,>12>,>12>,>12>,>12>,>12>)> print>(>'year ='>, a.year)> print>(>'month ='>, a.month)> print>(>'hour ='>, a.hour)> print>(>'minute ='>, a.minute)> print>(>'timestamp ='>, a.timestamp())>

>

>

Sortir:

year = 1999 month = 12 hour = 12 minute = 12 timestamp = 945000732.0>

Date et heure actuelles

Vous pouvez imprimer la date et l'heure actuelles à l'aide de la fonction Datetime.now(). La fonction now() renvoie la date et l'heure locales actuelles.

Python3




from> datetime>import> datetime> # Calling now() function> today>=> datetime.now()> print>(>'Current date and time is'>, today)>

>

>

Sortir:

Current date and time is 2019-10-25 11:12:11.289834>

Convertir Python Datetime en chaîne

Nous pouvons convertir Datetime en chaîne en Python en utilisant le datetime.strftime et méthodes datetime.isoformat.

Python3




from> datetime>import> datetime as dt> # Getting current date and time> now>=> dt.now()> string>=> dt.isoformat(now)> print>(string)> print>(>type>(string))>

np.clip
>

>

Sortir

2021-08-19T18:13:25.346259>

Liste des méthodes de classe Datetime

Nom de la fonction

Description

astimezone() Renvoie l'objet DateTime contenant les informations de fuseau horaire.
combiner() Combine les objets date et heure et renvoie un objet DateTime
ctime() Renvoie une représentation sous forme de chaîne de la date et de l'heure
date() Renvoie l'objet de classe Date
depuisisoformat() Renvoie un objet datetime à partir de la représentation sous forme de chaîne de la date et de l'heure
deordinal() Renvoie un objet date de l'ordinal grégorien proleptique, où le 1er janvier de l'année 1 a l'ordinal 1. L'heure, la minute, la seconde et la microseconde sont 0
à partir de l'horodatage() Date et heure de retour à partir de l'horodatage POSIX
isocalendrier() Renvoie un tuple année, semaine et jour de la semaine
isoformat() Renvoie la représentation sous forme de chaîne de la date et de l'heure
isoweekday() Renvoie le jour de la semaine sous forme d'entier où lundi vaut 1 et dimanche vaut 7
maintenant() Renvoie la date et l'heure locales actuelles avec le paramètre tz
remplacer() Modifie les attributs spécifiques de l'objet DateTime
strftime() Renvoie une représentation sous forme de chaîne de l'objet DateTime avec le format donné
strptime() Renvoie un objet DateTime correspondant à la chaîne de date
temps() Renvoie l'objet de classe Time
timetuple() Renvoie un objet de type time.struct_time
timetz() Renvoie l'objet de classe Time
aujourd'hui() Renvoie la DateTime locale avec tzinfo comme Aucun
toordinal() Renvoie l'ordinal grégorien proleptique de la date, où le 1er janvier de l'année 1 a l'ordinal 1
tzname() Renvoie le nom du fuseau horaire
utcfromtimestamp() Renvoie UTC à partir de l'horodatage POSIX
utcoffset() Renvoie le décalage UTC
utcnow() Renvoie la date et l'heure UTC actuelles
jour de la semaine() Renvoie le jour de la semaine sous forme d'entier où lundi vaut 0 et dimanche vaut 6

Classe Python Timedelta

La classe Python timedelta est utilisée pour calculer les différences de dates et peut également être utilisée pour les manipulations de dates en Python. C’est l’un des moyens les plus simples d’effectuer des manipulations de dates.

Syntaxe du constructeur :

classe datetime.timedelta(jours=0, secondes=0, microsecondes=0, millisecondes=0, minutes=0, heures=0, semaines=0)
Retours : Date

Ajouter des jours à l'objet DateTime

La démonstration de la fonction timedelta

Python3




from> datetime>import> datetime, timedelta> # Using current time> ini_time_for_now>=> datetime.now()> # printing initial_date> print>(>'initial_date'>,>str>(ini_time_for_now))> # Calculating future dates> # for two years> future_date_after_2yrs>=> ini_time_for_now>+> timedelta(days>=>730>)> future_date_after_2days>=> ini_time_for_now>+> timedelta(days>=>2>)> # printing calculated future_dates> print>(>'future_date_after_2yrs:'>,>str>(future_date_after_2yrs))> print>(>'future_date_after_2days:'>,>str>(future_date_after_2days))>

>

>

Sortir:

initial_date 2019-10-25 12:01:01.227848 future_date_after_2yrs: 2021-10-24 12:01:01.227848 future_date_after_2days: 2019-10-27 12:01:01.227848>

Différence entre deux dates et heures

Les différences de date et d’heure peuvent également être trouvées à l’aide de cette classe.

Python3




# Timedelta function demonstration> from> datetime>import> datetime, timedelta> # Using current time> ini_time_for_now>=> datetime.now()> # printing initial_date> print>(>'initial_date'>,>str>(ini_time_for_now))> # Some another datetime> new_final_time>=> ini_time_for_now>+> > >timedelta(days>=>2>)> # printing new final_date> print>(>'new_final_time'>,>str>(new_final_time))> # printing calculated past_dates> print>(>'Time difference:'>,>str>(new_final_time>-> >ini_time_for_now))>

>

>

suite d'outils à ressort

Sortir:

initial_date 2019-10-25 12:02:32.799814 new_final_time 2019-10-27 12:02:32.799814 Time difference: 2 days, 0:00:00>

Opérations prises en charge par la classe Timedelta

Opérateur

Description

Ajout (+) Ajoute et renvoie deux objets timedelta
Soustraction (-) Soustrait et renvoie deux objets timedelta
Multiplications (*) Multiplie l'objet timedelta avec float ou int
Division (/) Divise l'objet timedelta avec float ou int
Division d'étage (//) Divise l'objet timedelta avec float ou int et renvoie la valeur int de la sortie
Modules (%) Divise deux objets timedelta et renvoie le reste
+(différence de temps) Renvoie le même objet timedelta
-(différence de temps) Renvoie le résultat de -1*timedelta
abs(delta de temps) Renvoie le +(timedelta) si timedelta.days> 1=0 sinon renvoie -(timedelta)
str(timedelta) Renvoie une chaîne sous la forme (+/-) jour[s], HH:MM:SS.UUUUUU
repr(timedelta) Renvoie la représentation sous forme de chaîne sous la forme de l'appel du constructeur

Formater DateHeure en Python

Le formatage de DateTime peut être très nécessaire car la représentation de la date peut différer d'un endroit à l'autre. Dans certains pays, il peut s'agir de aaaa-mm-jj et dans d'autres pays, il peut s'agir de jj-mm-aaaa. Pour formater Python Datetime, les fonctions strptime et strftime peuvent être utilisées.

Python Datetime strftime

Une méthode strftime() convertit la date, l'heure ou l'objet DateTime donné en la représentation sous forme de chaîne du format donné.

Format date/heure Python

Programme Python pour démontrer la fonction strftime()

Python3




from> datetime>import> datetime as dt> # Getting current date and time> now>=> dt.now()> print>(>'Without formatting'>, now)> # Example 1> s>=> now.strftime(>'%A %m %-Y'>)> print>(>' Example 1:'>, s)> # Example 2> s>=> now.strftime(>'%a %-m %y'>)> print>(>' Example 2:'>, s)> # Example 3> s>=> now.strftime(>'%-I %p %S'>)> print>(>' Example 3:'>, s)> # Example 4> s>=> now.strftime(>'%H:%M:%S'>)> print>(>' Example 4:'>, s)>

>

>

Sortir

Without formatting 2021-08-19 18:16:25.881661 Example 1: Thursday 08 2021 Example 2: Thu 8 21 Example 3: 6 PM 25 Example 4: 18:16:25>

Note: Pour plus d'informations, reportez-vous à Méthode strftime() .

Python DateTime strptime

Le strptime() crée un objet DateTime à partir de la chaîne donnée.

Exemple: DateHeure strptime

Python3




# import datetime module from datetime> from> datetime>import> datetime> > # consider the time stamps from a list in string> # format DD/MM/YY H:M:S.micros> time_data>=> [>'25/05/99 02:35:8.023'>,>'26/05/99 12:45:0.003'>,> >'27/05/99 07:35:5.523'>,>'28/05/99 05:15:55.523'>]> > # format the string in the given format : day/month/year> # hours/minutes/seconds-micro seconds> format_data>=> '%d/%m/%y %H:%M:%S.%f'> > # Using strptime with datetime we will format string> # into datetime> for> i>in> time_data:> >print>(datetime.strptime(i, format_data))>

>

>

Sortir

1999-05-25 02:35:08.023000 1999-05-26 12:45:00.003000 1999-05-27 07:35:05.523000 1999-05-28 05:15:55.523000>

Python DateTime.tzinfo()

Le fonction datetime.now() ne contient aucune information concernant les fuseaux horaires. Il utilise uniquement l’heure système actuelle. Tzinfo est une classe de base abstraite en Python. Il ne peut pas être directement instancié. Une sous-classe concrète doit dériver de cette classe abstraite et implémenter les méthodes proposées par celle-ci.

Liste des objets Python DateTime.tzinfo()

Nom de la fonction

Description

heure d'été() Renvoie tzinfo.dst() si tzinfo n'est pas Aucun
deutc() Le but de cette fonction est d'ajuster les données de date et d'heure,
renvoyant un DateTime équivalent à l’heure locale de soi.
tzname() Renvoie tzinfo.tzname() si tzinfo n'est pas Aucun
utcoffset() Renvoie tzinfo.utcffsets() si tzinfo n'est pas Aucun

Exemple

L'instance de classe tzinfo peut être fournie aux constructeurs d'objets DateTime et time. Il est utilisé dans des scénarios tels que la conversion de l'heure locale en UTC ou la prise en compte de l'heure d'été.

Python3




import> datetime as dt> from> dateutil>import> tz> tz_string>=> dt.datetime.now(dt.timezone.utc).astimezone().tzname()> print>(>'datetime.now() :'>, tz_string)> NYC>=> tz.gettz(>'Europe / Berlin'>)> dt1>=> dt.datetime(>2022>,>5>,>21>,>12>,>0>)> dt2>=> dt.datetime(>2022>,>12>,>21>,>12>,>0>, tzinfo>=>NYC)> print>(>'Naive Object :'>, dt1.tzname())> print>(>'Aware Object :'>, dt2.tzname())>

>

>

Sortir:

datetime.now() : IST Naive Object : None Aware Object : None>

Fuseau horaire Python DateTime

Les fuseaux horaires dans DateTime peuvent être utilisés dans le cas où l'on souhaite afficher l'heure en fonction du fuseau horaire d'une région spécifique. Cela peut être fait en utilisant le module pytz de Python. Ce module sert les fonctionnalités de conversion date-heure et aide les utilisateurs au service des bases de clients internationales.

Python3




from> datetime>import> datetime> from> pytz>import> timezone> format> => '%Y-%m-%d %H:%M:%S %Z%z'> # Current time in UTC> now_utc>=> datetime.now(timezone(>'UTC'>))> print>(now_utc.strftime(>format>))> timezones>=> [>'Asia/Kolkata'>,>'Europe/Kiev'>,>'America/New_York'>]> for> tzone>in> timezones:> ># Convert to Asia/Kolkata time zone> >now_asia>=> now_utc.astimezone(timezone(tzone))> >print>(now_asia.strftime(>format>))>

>

>

Sortir

2021-08-19 18:27:28 UTC+0000 2021-08-19 23:57:28 IST+0530 2021-08-19 21:27:28 EEST+0300 2021-08-19 14:27:28 EDT-0400>