Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Maîtriser Python datetime : guide pratique pour les dates, heures et fuseaux horaires

Maîtriser Python datetime

Découvrez comment travailler avec les dates et heures en Python à travers des exemples pratiques et des explications claires.

Vidéo : Python datetime – Travailler avec les dates et heures

Le module datetime de Python fournit des outils puissants pour manipuler les dates et heures. Ci-dessous, nous parcourons les tâches courantes, de la récupération du moment actuel au formatage et à la gestion des fuseaux horaires.


Exemple 1 : Obtenir la date et l'heure actuelles

import datetime
datetime_objet = datetime.datetime.now()
print(datetime_objet)

La ressemblera à :

2018-12-19 09:26:03.478039

Ici, nous importons le module avec import datetime. La classe datetime contient une méthode now() qui retourne la date et l'heure locales.


Exemple 2 : Obtenir la date actuelle

import datetime
date_objet = datetime.date.today()
print(date_objet)

La sortie sera :

2018-12-19

Nous utilisons today() depuis la classe date pour obtenir la date calendaire actuelle.


Explorer le module datetime

Exécutez dir(datetime) pour lister tous les attributs et classes :

import datetime
print(dir(datetime))

Sortie :

['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']

Les classes clés incluent date, time, datetime et timedelta.


Classe datetime.date

La classe date représente une date calendaire (année, mois, jour).


Exemple 3 : Créer un objet date

import datetime
d = datetime.date(2019, 4, 13)
print(d)

Résultat :

2019-04-13

Ici, date() est un constructeur qui accepte year, month et day comme arguments.

La variable a est une instance de date.


Importer seulement la classe date :

from datetime import date
a = date(2019, 4, 13)
print(a)

Exemple 4 : Date actuelle

Utilisez la méthode de classe today() :

from datetime import date
aujourd_hui = date.today()
print("Date actuelle =", aujourd_hui)

Exemple 5 : Depuis un timestamp

Un timestamp Unix compte les secondes depuis le 1970-01-01 UTC. Convertissez-le avec fromtimestamp() :

from datetime import date
timestamp = date.fromtimestamp(1326244364)
print("Date =", timestamp)

Sortie :

Date = 2012-01-11

Exemple 6 : Accéder à l'année, mois, jour

from datetime import date
aujourd_hui = date.today()
print("Année actuelle :", aujourd_hui.year)
print("Mois actuel :", aujourd_hui.month)
print("Jour actuel :", aujourd_hui.day)

datetime.time

La classe time stocke une heure sans date.


Exemple 7 : Créer des objets time

from datetime import time
a = time()
print("a =", a)
b = time(11, 34, 56)
print("b =", b)
c = time(hour=11, minute=34, second=56)
print("c =", c)
d = time(11, 34, 56, 234566)
print("d =", d)

Résultat :

a = 00:00:00 b = 11:34:56 c = 11:34:56 d = 11:34:56.234566

Exemple 8 : Inspecter les composants de time

from datetime import time
a = time(11, 34, 56)
print("heure =", a.hour)
print("minute =", a.minute)
print("seconde =", a.second)
print("microseconde =", a.microsecond)

Sortie :

heure = 11 minute = 34 seconde = 56 microseconde = 0

datetime.datetime

La classe datetime combine à la fois les informations de date et d'heure.


Exemple 9 : Créer un objet datetime

from datetime import datetime
# année, mois, jour
A = datetime(2018, 11, 28)
print(A)
# spécification complète
B = datetime(2017, 11, 28, 23, 55, 59, 342380)
print(B)

Résultat :

2018-11-28 00:00:00 2017-11-28 23:55:59.342380

L'année, le mois et le jour sont obligatoires ; l'heure, la minute, la seconde et la microseconde valent zéro par défaut.


Exemple 10 : Inspecter les composants et timestamp

from datetime import datetime
A = datetime(2017, 11, 28, 23, 55, 59, 342380)
print("année =", A.year)
print("mois =", A.month)
print("jour =", A.day)
print("heure =", A.hour)
print("minute =", A.minute)
print("timestamp =", A.timestamp())

Sortie :

année = 2017 mois = 11 jour = 28 heure = 23 minute = 55 timestamp = 1511913359.34238

datetime.timedelta

Un objet timedelta représente une durée entre deux dates ou heures.


Exemple 11 : Différence entre dates et heures

from datetime import datetime, date
T1 = date(year=2018, month=7, day=12)
T2 = date(year=2017, month=12, day=23)
T3 = T1 - T2
print("T3 =", T3)
T4 = datetime(year=2018, month=7, day=12, hour=7, minute=9, second=33)
T5 = datetime(year=2019, month=6, day=10, hour=5, minute=55, second=13)
T6 = T4 - T5
print("T6 =", T6)
print("type de T3 =", type(T3))
print("type de T6 =", type(T6))

Sortie :

T3 = 201 days, 0:00:00 T6 = -333 days, 1:14:20 type de T3 = <class 'datetime.timedelta'> type de T6 = <class 'datetime.timedelta'>

Exemple 12 : Soustraction d'objets timedelta

from datetime import timedelta
T1 = timedelta(weeks=2, days=5, hours=1, seconds=33)
T2 = timedelta(days=4, hours=11, minutes=4, seconds=54)
T3 = T1 - T2
print("T3 =", T3)

Sortie :

T3 = 14 days, 13:55:39

Exemple 13 : Timedelta négatif

from datetime import timedelta
T1 = timedelta(seconds=33)
T2 = timedelta(seconds=54)
T3 = T1 - T2
print("T3 =", T3)
print("abs(T3) =", abs(T3))

Sortie :

T3 = -1 day, 23:59:39 abs(T3) = 0:00:21

Exemple 14 : Secondes totales dans un timedelta

from datetime import timedelta
T = timedelta(days=5, hours=1, seconds=33, microseconds=233423)
print("secondes totales =", T.total_seconds())

Sortie :

secondes totales = 435633.233423

Vous pouvez additionner des dates, multiplier un timedelta par un nombre, et le diviser par un float pour échelonner des durées.


Formatage et analyse de dates

Différentes locales utilisent des formats de date variés (ex. : mm/jj/aaaa aux US vs jj/mm/aaaa au UK). Les méthodes strftime() et strptime() de Python aident à convertir entre objets datetime et chaînes formatées.


Python strftime() — datetime vers chaîne

from datetime import datetime
maintenant = datetime.now()
# Heure:minute:seconde
T = maintenant.strftime("%H:%M:%S")
print("heure :", T)
# Format US
S1 = maintenant.strftime("%m/%d/%Y, %H:%M:%S")
print("S1 :", S1)
# Format UK
S2 = maintenant.strftime("%d/%m/%Y, %H:%M:%S")
print("S2 :", S2)

Sortie typique :

heure : 04:34:52 S1 : 12/26/2018, 04:34:52 S2 : 26/12/2018, 04:34:52

Codes de format courants : %Y année, %m mois, %d jour, %H heure, %M minute, %S seconde.


Python strptime() — chaîne vers datetime

from datetime import datetime
chaine_date = "21 June, 2018"
print("chaine_date =", chaine_date)
objet_date = datetime.strptime(chaine_date, "%d %B, %Y")
print("objet_date =", objet_date)

Sortie :

chaine_date = 21 June, 2018 objet_date = 2018-06-21 00:00:00

Ici, %d est le jour, %B le nom complet du mois, et %Y l'année.


Conscience des fuseaux horaires

Pour les applications qui doivent afficher ou calculer des heures dans différents fuseaux, évitez les calculs manuels et utilisez la bibliothèque pytz.

from datetime import datetime
import pytz
local = datetime.now()
print("Local :", local.strftime("%m/%d/%Y, %H:%M:%S"))
tz_NY = pytz.timezone('America/New_York')
dt_NY = datetime.now(tz_NY)
print("NY :", dt_NY.strftime("%m/%d/%Y, %H:%M:%S"))
tz_London = pytz.timezone('Europe/London')
dt_London = datetime.now(tz_London)
print("London :", dt_London.strftime("%m/%d/%Y, %H:%M:%S"))

Exemple de sortie :

Local : 12/20/2018, 13:10:44 NY : 12/20/2018, 08:10:44 London : 12/20/2018, 13:10:44

Les objets datetime_NY et datetime_London contiennent des timestamps conscients du fuseau horaire.

Python

  1. Maîtriser les types de données Python : Guide pratique
  2. Maîtriser les opérateurs Python : Guide complet
  3. Maîtriser l'instruction pass en Python : Guide pratique
  4. Maîtriser les arguments de fonctions Python : Positionnels, nommés et paramètres par défaut
  5. Maîtriser les dictionnaires Python : création, manipulation et techniques avancées
  6. Maîtriser les itérateurs Python : fonctionnement et création des vôtres
  7. Les fermetures Python expliquées : comment les fonctions imbriquées capturent les variables
  8. Récupérer la date et l'heure actuelles en Python : Guide pratique
  9. Python : Récupérer l'heure actuelle et les données de fuseau horaire facilement