Convertir l'époque à l'heure actuelle en Python

  1. Utilisez le module time pour convertir l’époque en date-heure en Python
  2. Utilisez le module datetime pour convertir l’époque en date et heure en Python

Ce tutoriel présente la conversion des secondes d’époque au format date-heure en Python.

L’époque est un terme qui désigne le nombre de secondes qui se sont écoulées depuis la date de l’époque - le 1er janvier 1970. L’année 1970 est la date de sortie du système d’exploitation UNIX. L’heure d’époque est également appelée horodatage UNIX.

Par exemple, l’époque pour la date du 25 novembre 2020 (00:00:00) serait 1606262400, qui est le nombre de secondes qui se sont écoulées depuis le 01 janvier 1970 jusqu’à cette date.

Utilisez le module time pour convertir l’époque en date-heure en Python

Le module Python time fournit des fonctions pratiques liées au temps. Cette fonction offre un support important pour les calculs liés aux horodatages UNIX.

Par exemple, la fonction time.localtime() accepte les secondes d’époque comme argument et génère une séquence de valeur temporelle composée de 9 séquences temporelles.

Utilisons un temps d’époque aléatoire pour cet exemple.

import time

epoch_time = 1554723620
time_val = time.localtime(epoch_time)

print("Date in time_struct:", time_val)

Production :

Date in time_struct: time.struct_time(tm_year=2019, tm_mon=4, tm_mday=8, tm_hour=19, tm_min=40, tm_sec=20, tm_wday=0, tm_yday=98, tm_isdst=0)

localtime() produit un tuple struct_time() avec les détails de l’heure d’époque contenant l’année, le mois, le jour, et d’autres détails de l’heure d’époque que l’heure d’époque contient.

Le module time a une autre fonction time.strftime() pour convertir le tuple en un format date-heure.

La fonction accepte 2 arguments, le premier argument est une chaîne de caractères contenant le format spécifié pour la conversion, et le second argument est le tuple struct_time().

Maintenant, convertissez le même exemple d’époque-temps ci-dessus en un format date-heure lisible.

import time

epoch_time = 1554723620
time_formatted = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(epoch_time))

print("Formatted Date:", time_formatted)

Production :

Formatted Date: 2019-04-08 19:40:20

En dehors de ce format, un autre format de date générique serait le nom complet du mois et incluant le jour de la semaine. Essayons cela.

import time

epoch_time = 1554723620
time_formatted = time.strftime('%A, %B %-d, %Y %H:%M:%S', time.localtime(epoch_time))

print("Formatted Date:", time_formatted)
Formatted Date: Monday, April 8, 2019 19:40:20

Un autre format utile dans strftime() qui ne nécessite qu’un seul caractère est %c, qui est la représentation générique de la date et de l’heure pour Locale.

time_formatted = time.strftime('%c', time.localtime(epoch_time))

print("Formatted Date:", time_formatted)

Production :

Formatted Date: Mon Apr 8 19:40:20 2019

Utilisez le module datetime pour convertir l’époque en date et heure en Python

datetime est un autre module en Python qui supporte les fonctions liées au temps. La différence est que le module time se concentre sur les horodatages Unix alors que datetime supporte une large gamme de fonctions de date et d’heure tout en supportant la plupart des opérations du module time.

Le module datetime a la fonction fromtimestamp() qui accepte les secondes d’époque et un objet datetime.

Essayons un autre exemple de seconde d’époque pour ce module.

Note :

La datetime est intentionnellement répétée deux fois. Dans le module datetime se trouve un objet datetime avec la fonction fromtimestamp(). Les objets date et time sont également des objets du module datetime.

import datetime

epoch_time = 561219765
time_val = datetime.datetime.fromtimestamp(epoch_time)

print('Date:', time_val)

Si datetime.datetime est exclusivement l’objet qui est utilisé dans le module datetime, alors importez-le du module pour éviter que le code ne paraisse redondant.

from datetime import datetime

Production :

Date: 1987-10-14 22:22:45

Pour convertir la datetime en un autre format, datetime() a également la fonction utilitaire strftime() qui fournit la même fonctionnalité que time.strftime().

import datetime

epoch_time = 561219765
time_formatted = datetime.datetime.fromtimestamp(epoch_time).strftime('%A, %B %-d, %Y %H:%M:%S')

print('Formatted Date:', time_formatted)

Résultat :

Formatted Date: Wednesday, October 14, 1987 22:22:45

En résumé, ce sont les deux principales façons de convertir l’époque au format date-heure en Python. Les modules time et datetime fournissent tous deux des fonctions qui peuvent être utilisées de manière pratique pour la conversion date-heure.

Les deux modules ont la fonction strftime(), qui est une façon pratique de formater les dates.

Voici une référence pour se familiariser avec les formats de date et d’heure en Python afin de pouvoir personnaliser le formatage des dates en utilisant strftime().

Article connexe - Python Datetime

  • Comment convertir une chaîne de caractères en datetime en Python
  • Ajouter des jours à une date en Python