oujood.com

Python comment manipuler la dte et l'heure

Dans cet article, vous apprendrez à manipuler la date et l'heure en Python à l'aide d'exemples.
La date en Python n'est pas un type de données à part entière, mais nous pouvons importer un module nommé datetime pour travailler avec des dates en tant qu'objets date.

chercher |

Python datetime

Python dispose d'un module nommé datetime pour travailler avec les dates et les heures. Créons quelques programmes simples liés à la date et à l'heure avant de les approfondir plus en détail.
Avant d'aller plus loin sachez que pour travailler avec les dates et heures, vous devez importer le module datetime.

import datetime ou import datetime as dte

Exemple 1 : Obtenir la date et l'heure actuelles

  Copier le code

# main.py
import datetime

objet_datetime = datetime.datetime.now()
print(objet_datetime)
Lorsque vous exécutez le programme, la sortie sera quelque chose comme suit, mais avec la date et le temps courant au moment de l'exécution du programe :

2020-12-19 20:26:03.478039

Comment ça fonctionne?
1, Nous avons importé le module datetime à l'aide de l'instruction import datetime.
2, Nous avons fait appele à l'une des classes définies dans le module datetime, qui est la classe datetime. 3, Nous avons ensuite utilisé la méthode now() de la classe datetime pour créer un objet datetime contenant la date et l'heure locales actuelles.

Exemple 2 : Obtenir la date actuelle

  Copier le code

# main.py
import datetime as dte

objet_date = dte.date.today()
print(objet_date)
Lorsque vous exécutez le programme, la sortie sera quelque chose comme :

2020-12-19

Dans ce programme, nous avons utilisé la méthode today() définie dans la classe date du module datetime que nous avons nommé (dte) pour obtenir un objet date contenant la date locale actuelle.

Qu'y a-t-il à l'intérieur du module datetime ?

Nous pouvons utiliser la fonction dir() pour obtenir une liste contenant tous les attributs d'un module.

  Copier le code

# main.py
import datetime as dte

print(dir(dte))
Ce programe donne:
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', 
'__file__', '__loader__', '__name__', '__package__', '__spec__',
 'date', 'datetime', 'datetime_CAPI', 'sys', 'time', 'timedelta',
 'timezone', 'tzinfo']
Les classes les plus utilisées dans le module datetime sont les suivantes :
  • Classe date
  • classe time
  • Classe datetime
  • Classe timedelta

Si vous faites la même chose avec la classe datetime, vous aurez toutes les méthodes qu’elle contient.

  Copier le code

# main.py
import datetime as dte

print(dir(dte.datetime))
Et voici ci dessous la liste des méthodes les plus utlisées
  • date, day, hour, minute, month,
  • now, replace, second, strftime, strptime,
  • time, timestamp, timetuple, timetz, today,
  • weekday, year

La classe date du module datetime (datetime.date)

Vous pouvez instancier des objets date à partir de la classe date du module datetime.
Un objet date représente une date (année, mois et jour).

Exemple : Un objet date pour représenter une date

  Copier le code

# main.py
import datetime

d = datetime.date(2019, 4, 13)
print(d)
Dans l'exemple ci-dessus, date() est un constructeur de la classe date. Le constructeur prend trois arguments dans cet ordre : année, mois et jour.
La variable d est un objet date.

Nous pouvons importer la classe date seule depuis le module datetime. Voici ci-dessous comment :

  Copier le code

# main.py
from datetime import date

d = date(2019, 4, 13)
print(d)

Exemple : Obtenir la date actuelle

Vous pouvez créer un objet date contenant la date du jour en utilisant la méthode, nommée today(), de la classe date. Voici, dans le code qui suit, comment procéder :

  Copier le code

# main.py
from datetime import date

ce_jour = date.today()
print("La date courante est : ", ce_jour)

Exemple : Obtenir une date à partir d'un horodatage (timestamp)

Nous pouvons également créer des objets date à partir d'un horodatage (timestamp). Un timestamp Unix est le nombre de secondes entre une date particulière et le 1er janvier 1970 à UTC. Vous pouvez convertir un timestamp en date en utilisant la méthode fromtimestamp() comme suit.

  Copier le code

# main.py
from datetime import date

timestamp = date.fromtimestamp(1326244364)
print("La date est : ", timestamp)
En exécutant le programme, le résultat sera le suivant :
La date est : 2018-09-06

Exemple : Afficher l'année, le mois et le jour d'aujourd'hui

Nous pouvons facilement obtenir l'année, le mois, le jour, le jour de la semaine, etc. à partir de l'objet date. Voici comment :

  Copier le code

# main.py
from datetime import date

# l'objet date de la date du jour courant
ce_jour = date.today() 

print("Lannée courante est :", ce_jour.year)
print("Le mois courant est :", ce_jour.month)
print("Le jour courant est :", ce_jour.day)

La classe time du module datetime

Un objet time instancié de la classe time représente le temps local.

Exemple : objet time pour représenter le temps local

  Copier le code

# main.py
from datetime import time

# time(hour = 0, minute = 0, second = 0)
temps1 = time()
print("temps1 =", temps1)

# time(heure, minute et seconde)
temps2 = time(9, 44, 16)
print("temps2 =", temps2)

# time(heure, minute et seconde)
temps3 = time(hour = 9, minute = 44, second = 16)
print("temps3 =", temps3)

# time(heure, minute, seconde, microsecond)
temps4 = time(9, 44, 16, 334660)
print("temps4 =", temps4)
En excutant ce programme la sortie sera comme suit
temps1 = 00:00:00
temps2 = 09:44:16
temps3 = 09:44:16
temps4 = 09:44:16.334660

Exemple : afficher l'heure, la minute, la seconde et la microseconde

Une fois que vous avez créé un objet temps, vous pouvez facilement imprimer ses attributs tels que l'heure, la minute, etc.

  Copier le code

# main.py
from datetime import time

# time(heure, minute et seconde)
temps = time(9, 44, 16)

print("heure =", temps.hour)
print("minute =", temps.minute)
print("seconde =", temps.second)
print("microseconde =", temps.microsecond)
Lors de l'exécution de l'exemple, le résultat sera le suivant :
heure = 9
minute = 44
seconde = 16
microseconde = 0

Remarque : nous n'avons pas passé l'argument microseconde. Par conséquent, sa valeur par défaut 0 est imprimée.

La classe datetime du module datetime

Le module datetime possède une classe dateclass qui peut contenir des informations provenant à la fois des objets date et heure.
C'est la classe qui porte le même nom que le module soit la classe datetime.

Exemple : objet datetime en Python

# main.py from datetime import datetime #datetime(année, mois, jour) a = datetime(2018, 11, 28) print(a) # datetime(année, mois, jour, heure, minute, seconde, microseconde) b = datetime(2017, 11, 28, 23, 55, 59, 342380) print(b) Lorsque vous exécutez le programme, la sortie sera la suivante :
2018-11-28 00:00:00
2017-11-28 23:55:59.342380
Les trois premiers arguments année, mois et jour dans le constructeur datetime() sont obligatoires.

Afficher la date et le temps actuel

  Copier le code

# main.py
from datetime import datetime as dte

a=dte.now()
print(a)
En exécutant le programme il affichera la date et le temps actuel local comme suit :

2022-09-04 22:16:03.487454

Exemple : Affichage de l'année, du mois, de l'heure, des minutes et de l'horodatage.

Pour afficher l'année, le mois, l'heure, la minute la seconde et l'horodatage on récupère les paramètres de la classe datetime : year, month, hour, minute, second et timestamp comme suit :

  Copier le code

# main.py
from datetime import datetime as dte

a=dte.now()

print(a)

print("Année =", a.year)
print("mois =", a.month)
print("heure =", a.hour)
print("minute =", a.minute)
print("seconde =", a.second)
print("timestamp =", a.timestamp())
la sortie de ce programme sera comme suit:
2021-09-04 22:33:29.073540
Année = 2021
mois = 9
heure = 22
minute = 33
seconde = 29
timestamp = 1662327209.07354

Formater la date et l'heure en Python

La représentation de la date et de l'heure peut varier selon les lieux, les organisations, etc.
Par exemple il est plus courant d'utiliser le format mm/dd/yyyy aux États-Unis, alors que le format dd/mm/yyyy est plus courant en France.
Les méthodes strftime() et strptime() de Python permettent de traiter ce problème.

Python strftime() - transformer un objet datetime en chaîne de caractères

La méthode strftime() est définie dans les classes date, datetime et time. La méthode crée une chaîne formatée à partir d'un objet date, datetime ou un temps donné.
Exemple : Formater une date à l'aide de strftime()

  Copier le code

# main.py
from datetime import datetime

# Date et temps courant
maintenant = datetime.now()
d = maintenant.strftime("%m/%d/%Y")
print("La date est : ", d)
t = maintenant.strftime("%H:%M:%S")
print("Maintenant il est :", t)

#Le format mm/dd/YY H:M:S 
s1 = maintenant.strftime("%m/%d/%Y, %H:%M:%S")
print("s1:", s1)
# Le format dd/mm/YY H:M:S
s2 = maintenant.strftime("%d/%m/%Y, %H:%M:%S")
print("s2:", s2)
En exécutant ce programme, on aura un résultat semblable à celui-ci :
La date est :  09/06/2022
Maintenant il est : 10:12:48
s1: 09/06/2021, 10:12:48
s2: 06/09/2021, 10:12:48
Les symboles %Y, %m, %d, %H, etc. sont des codes de format. Avec la méthode strftime(), on prend un ou plusieurs codes de format et on renvoie une chaîne formatée en fonction de ce ou ces codes.
Donc dans le programme ci-dessus, d, t, s1 et s2 sont des chaînes de caractères.
Voici une liste de tous les codes de formats légaux :A reference of all the legal format codes:
Directive Description
%a Jour de la semaine, version courte
%A Jour de la semaine, version complète
%w Jour de la semaine sous la forme d'un nombre de 0 à 6, 0 étant le dimanche.
%d Jour du mois 01-31
%b Nom du mois, version courte
%B Nom du mois, version complète
%m Le mois est représenté par les chiffres 01-12
%y Année, version courte, sans siècle
%Y Année, version complète
%H Heure 00-23
%I Heure 00-12
%p AM/PM
%M Minute 00-59
%S Seconde 00-59
%f Microseconde 000000-999999
%z Décalage UTC
%Z Fuseau horaire
%j Numéro du jour de l'année 001-366
%U Numéro de semaine de l'année, le dimanche est le premier jour de la semaine, 00-53
%W Numéro de semaine de l'année, le lundi est le premier jour de la semaine, 00-53
%c Version locale de la date et de l'heure
%C Siècle
%x Version locale de la date
%X Version locale de l'heure
%
% Un caractère
%.
%G Année ISO 8601
%u ISO 8601 jour de la semaine (1-7)
%V Numéro de semaine ISO 8601 (01-53)

La méthode Python strptime() - transformer une chaîne de caractères en datetime

Avec la méthode strptime(), on transforme une chaîne de caractères (représentant la date et l'heure) en un objet datetime.
Exemple : strptime(), transformer une chaîne de caractères en datetime

  Copier le code

# main.py
from datetime import datetime

chaine_date = "21 June, 2018"
print("La chaîne de date est : ", chaine_date)

objet_date = datetime.strptime(chaine_date, "%d %B, %Y")
print("L'objet date est : ", objet_date)
print("\n")
maintenant = datetime.now()
d_str = maintenant.strftime("%d, %B, %Y")
print("Autre chaîne de date est : ", d_str)
d = datetime.strptime(d_str, "%d, %B, %Y")
print("Autre objet date : ", d)
La méthode strptime() prend deux arguments :
une chaîne de caractères représentant la date et l'heure
un code de format correspondant au premier argument

A propos, les codes de format %d, %B et %Y sont utilisés respectivement pour le jour, le mois ( complet ) et l'année.




Voir aussi nos tutoriel :

Selecteurs jQuery

Les selecteurs jQuery

fonction strpos, strpos

Trouve la position d'un caractère dans une chaîne

glisser et déplacer

Glisser et Déplacer