oujood.com

datetime - Manipulation des valeurs de date et heure

Le module datetime propose des fonctions et des classes pour l'analyse, le formatage et les opérations arithmétiques relatives aux dates et au temps.
Dans cet article, vous allez aussi apprendre à calculer la différence de temps entre deux temps en Python. Par exemple, nous voulons mesurer le temps d'exécution d'un programme. Dans ce cas, nous devons calculer la différence de temps entre les heures de début et de fin du programme.
Nous pouvons également avoir besoin de calculer le décalage horaire entre deux événements. Nous devons soustraire un temps/horodatage d'un autre pour calculer la différence de temps entre deux temps.

chercher |

Arithmétique de la date

L'arithmétique des dates utilise les opérateurs arithmétiques standard. Cet exemple avec des objets date illustre l'utilisation d'objets timedelta pour calculer de nouvelles dates, et la soustraction d'instances de date pour produire des timedeltas (y compris une valeur delta négative).

  Copier le code

# main.py
import datetime

aujourd_hui = datetime.date.today()
print ("Aujourd'hui est :", aujourd_hui)

un_jour = datetime.timedelta(days=1)
print ("Un jour :", un_jour)

hier = aujourd_hui - un_jour
print ("Hier est :", hier)

demain = aujourd_hui + un_jour
print ("Demain est :", demain)

print ("demain - hier = ", demain - hier)
print ("hier - demain = ", hier - demain)
Aujourd'hui : 2013-02-21
Un jour : 1 day, 0:00:00
Hier : 2013-02-20
Demain : 2013-02-22
demain - hier = 2 jours, 0:00:00
hier - demain = -2 jours, 0:00:00

Comparaison des valeurs de dates et heures

Les valeurs de date et d'heure peuvent être comparées à l'aide des opérateurs standard pour déterminer laquelle est antérieure ou postérieure.

  Copier le code

# main.py
import datetime
import time

print ("Temps:")
Temps1 = datetime.time(12, 55, 0)
print ("\tTemps1:", Temps1)
Temps2 = datetime.time(13, 5, 0)
print ("\tTemps2:", Temps2)
print ("\tTemps1 < Temps2 est :", Temps1 < Temps2)

print ("Dates:")
Date1 = datetime.date.today()
print ("\tDate1:", Date1)
Date2 = datetime.date.today() + datetime.timedelta(days=1)
print ("\tDate2:", Date2)
print ("\tDate1 > Date2 est :", Date1 > Date2)
Temps:
	Temps1: 12:55:00
	Temps2: 13:05:00
	Temps1 < Temps2 est : True
Dates:
	dDate1: 2016-09-07
	Date2: 2016-09-08
	Date1 > Date2 est : False

Calculer la différence de temps en Python

Dans la suite de cet article sur Python, vous apprendrez :

Comment calculer l'intervalle de temps entre les deux temps.
Obtenir la différence de temps en secondes, minutes et heures
Obtenir la différence de temps entre deux horodatages en Python

Comment calculer la différence entre deux temps, en Python ?

Par exemple, vous avez une heure de début et une heure de fin au format (HH:MM:SS) "10:33:26". Les étapes ci-dessous montrent comment calculer la différence de temps en heures, minutes et secondes entre deux temps en Python.

1. Importez le module datetime

Le module datetime de Python fournit diverses fonctions pour créer et manipuler la date et l'heure. Utilisez l'instruction from datetime import datetime pour importer une classe datetime depuis un module datetime.

2. Convertir des chaînes de temps en un objet datetime

Nous disposons de données temporelles au format chaîne. Avant de calculer la différence, nous devons convertir les deux chaînes de temps en un objet datetime.
Il est donc nécessaire d'utiliser la fonction strptime(time_str, format) pour convertir une chaîne de temps en un objet datetime selon le format correspondant. Les codes de format sont des directives standard permettant de mentionner le format de la chaîne pour l'analyse syntaxique. Par exemple, les codes de format %H:%M:%S correspondent aux heures, minutes et secondes.

3. Soustrayez le temps de fin du temps de début

Pour obtenir la différence entre deux temps, soustraire le temps1 du temps2. Le résultat est un objet timedelta. Le timedelta représente une durée qui est la différence entre deux temps avec une résolution de l'ordre de la microseconde.

4. Obtenir la différence de temps en secondes

Pour obtenir une différence de temps en secondes, utilisez les méthodes timedelta.total_seconds().

5. Obtenir la différence de temps en millisecondes

Multipliez le nombre total de secondes par 1000 pour obtenir la différence de temps en millisecondes.

6. Obtenir la différence de temps en minutes

Divisez les secondes par 60 pour obtenir la différence en minutes.

7. Obtenez la différence de temps en heures

Divisez les secondes par 3600 pour obtenir le résultat final en heures.

Exemple : Calculer le décalage horaire en Python

Dans cet exemple, nous allons voir comment calculer les secondes et les millisecondes entre deux temps.

  Copier le code

# main.py
from datetime import datetime

temps_debut = "2:13:57"
temps_fin = "11:46:38"

# convertir la chaîne de temps en date
t1 = datetime.strptime(temps_debut, "%H:%M:%S")
print('Le temps de début est : ', t1.time())

t2 = datetime.strptime(temps_fin, "%H:%M:%S")
print('Le temps de fin est : ', t2.time())

# obtenir la différence
delta = t2 - t1

# la différence de temps en secondes
print(f"La différence de temps en seconde est: {delta.total_seconds()} secondes")

# la différence de temps en millisecondes
ms = delta.total_seconds() * 1000
print(f"La différence de temps en millisecondes est : {ms} millisecondes")
La sortie est :
Le temps de début est :  02:13:57
Le temps de fin est :  11:46:38
La différence de temps en seconde est: 34361.0 secondes
La différence de temps en millisecondes est : 34361000.0 millisecondes

Obtenir le décalage horaire en heures et minutes

Remarque : pour calculer la différence de temps en minutes et en heures, appliquez les relations ci-dessous.


Tout d'abord, utilisez l'exemple ci-dessus pour obtenir la différence de temps en secondes entre deux temps.
Ensuite, divisez les secondes par 60 pour obtenir le décalage horaire en minutes.
Enfin, divisez les secondes par 3600 (60*60) pour obtenir la différence de temps en heures.
Exemple : Pour obtenir la différence de temps en heures et minutes entre deux temps.

  Copier le code

# main.py
from datetime import datetime

temps_debut = "2:13:57"
temps_fin = "11:46:38"

t1 = datetime.strptime(temps_debut, "%H:%M:%S")
t2 = datetime.strptime(temps_fin, "%H:%M:%S")

# obtenir la différence
delta = t2 - t1

# la différence de temps en secondes
sec = delta.total_seconds()
print(f"La différence de temps en seconde est: {sec} secondes")

# la différence de temps en minutes
dm = sec / 60
print(f"La différence de temps en minutes est : {dm} minutes")

# la différence de temps en heures
dh = sec / (60*60)
print(f"La différence de temps en heures est : {dh} heures")
La sortie est :

La différence de temps en seconde est: 34361.0 secondes
La différence de temps en minutes est : 572.6833333333333 minutes
La différence de temps en heures est : 9.544722222222223 heures

Différence de temps entre deux timestamps en Python

Un timestamp est une information codée généralement utilisée sous UNIX, qui indique en secondes la date et l'heure à laquelle un événement particulier s'est produit.
Voyons maintenant comment trouver la différence entre deux timestamps en heures, minutes et secondes.
Tout d'abord, stockez le timestamp de début dans la variable 'debut_ts' et le timestamp de fin dans la variable 'fin_ts'.
Ensuite, utilisez la méthode fromtimestamp() pour convertir les horodatages de début et de fin en objets datetime. Nous convertissons ces timestamps en datetime car nous voulons soustraire un timbre d'un autre.
Ensuite, soustraire datetime2 de datetime1 pour calculer la différence entre deux timestamps sous la forme de timedelta.
Puis, utilisez la méthode total_seconds() pour obtenir la différence en secondes.
Exemple 1 : Différence entre deux horodatages au format HH:MM:SS.

  Copier le code

# main.py
from datetime import datetime

# start and end timestamps
debut_ts = 1652426243.907874
fin_ts = 1652436243.907874

# convertir timestamps en un objet datetime
dt1 = datetime.fromtimestamp(debut_ts)
print('Datetime du debut:', dt1)
dt2 = datetime.fromtimestamp(fin_ts)
print('Datetime de la fin :', dt2)

# Différence entre deux timestamps
# au format heures:minutes:secondes 
delta = dt2 - dt1
print('Différence est:', delta)
Le résultat est comme suit :
Datetime du debut: 2022-05-13 08:17:23.907874
Datetime de la fin : 2022-05-13 11:04:03.907874
Différence est: 2:46:40

Différence entre deux timestamps en secondes

Utilisez l'exemple ci-dessous pour obtenir le nombre total de secondes entre deux timestamps.
Exemple :

  Copier le code

# main.py
from datetime import datetime

# Les timestamps de début et de fin  
debut_ts = 1652426243.907874
fin_ts = 1652436243.907874

# Différence entre deux timestamps
# en secondes 
delta = fin_ts - debut_ts
print('Différence est:', delta, "secondes")
La sorie sra comme suit:

Différence est: 10000.0 secondes
Vu que le timestamp est en secondes la différence directe entre deux timestamps est en secondes.

Convertir la différence entre deux timestamps en un temps au format (heures minutes secondes).

Pour convertir la différence entre deux timestamps en un temps au format (h min sec), on va créer une fonction qui se charge de cette conversion, dans cette fonction nous utilisons la methode intégrée à python divmod().
La méthode divmod() prend deux nombres comme arguments et renvoie leur quotient et leur reste dans un tuple.
Ainsi on peut obtenir un résultat en deux opérations mathématiques seulement.
L’exemple suivant montre comment convertir la différence entre deux timestamps en un temps au format (heures minutes secondes) :

  Copier le code

# main.py
from datetime import datetime

# La fonction pour convertir en temps 
#format (heure, min, sec)
def convert(secondes):
    min, sec = divmod(secondes, 60)
    heure, min = divmod(min, 60)
    return "%d h %02d min %02d sec" % (heure, min, sec)

# Les timestamps de début et de fin  
debut_ts = 1652426243.907874
fin_ts = 1652436243.907874

# Différence entre deux timestamps
# en secondes 
delta = fin_ts - debut_ts

print(convert(delta))
La sortie sera comme suit :
2 h 46 min 40 sec




Voir aussi nos tutoriel :

Affiche les informations d'une variable">var_dump

 Affiche les informations d'une variable

fonction date_default_timezone_get

Récupère le décalage horaire par défaut utilisé par toutes les fonctions date/heure dans un script

padding-left

Définit la marge intérieure gauche d'un élément