Converti Epoch in Datetime in Python
-
Usa il modulo
time
per convertire Epoch in Datetime in Python -
Usa il modulo
datetime
per convertire Epoch in Datetime in Python
Questo tutorial introdurrà come convertire i secondi epoch nel formato datetime in Python.
Epoch è un termine per il numero di secondi che sono trascorsi dalla data dell’epoca - 1 gennaio 1970. L’anno 1970 è la data di rilascio del sistema operativo UNIX. L’ora dell’epoca viene anche chiamata in alternativa come timestamp UNIX.
Ad esempio, l’epoca per la data del 25 novembre 2020 (00:00:00) sarebbe 1606262400
, che è il numero di secondi trascorsi dal 01/01/1970 a quella data.
Usa il modulo time
per convertire Epoch in Datetime in Python
Il modulo Python time
fornisce comode funzioni relative al tempo. La funzione fornisce molto supporto per i calcoli relativi ai timestamp UNIX.
Ad esempio, la funzione time.localtime()
accetta epoch seconds come argomento e genera una sequenza di valori temporali composta da 9 sequenze temporali.
Usiamo un tempo di epoca casuale per questo esempio.
import time
epoch_time = 1554723620
time_val = time.localtime(epoch_time)
print("Date in time_struct:", time_val)
Produzione:
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()
restituisce una tupla struct_time()
con i dettagli dell’ora epoch contenente l’anno, il mese, il giorno esatti e altri dettagli datetime contenuti nell’ora epoch.
Il modulo time
ha un’altra funzione time.strftime()
per convertire la tupla in un formato datetime.
La funzione accetta 2 argomenti, il primo argomento è una stringa contenente il formato specificato per la conversione e il secondo argomento è la tupla struct_time()
.
Ora converti lo stesso esempio di epoch time sopra in un formato datetime leggibile.
import time
epoch_time = 1554723620
time_formatted = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(epoch_time))
print("Formatted Date:", time_formatted)
Produzione:
Formatted Date: 2019-04-08 19:40:20
Oltre a questo formato, un altro formato di data generico sarebbe il nome completo del mese e includendo il giorno della settimana. Proviamolo.
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 altro formato utile in strftime()
che necessita di un solo carattere è %c
, che è la rappresentazione generica di data e ora per Locale.
time_formatted = time.strftime("%c", time.localtime(epoch_time))
print("Formatted Date:", time_formatted)
Produzione:
Formatted Date: Mon Apr 8 19:40:20 2019
Usa il modulo datetime
per convertire Epoch in Datetime in Python
datetime
è un altro modulo in Python che supporta le funzioni relative al tempo. La differenza è che il modulo time
si concentra sui timestamp Unix mentre datetime
supporta un’ampia gamma di funzioni di data e ora pur supportando molte delle operazioni del modulo time
.
datetime
ha la funzione fromtimestamp()
che accetta i secondi epoch e un oggetto datetime
.
Proviamo un secondo esempio di epoca diversa per questo modulo.
datetime
è intenzionalmente ripetuto due volte. All’interno del modulo datetime
c’è un oggetto datetime
con la funzione fromtimestamp()
. date
e time
sono anche oggetti all’interno del modulo datetime
.import datetime
epoch_time = 561219765
time_val = datetime.datetime.fromtimestamp(epoch_time)
print("Date:", time_val)
Se datetime.datetime
è esclusivamente l’oggetto che viene utilizzato all’interno del modulo datetime
, importalo dal modulo per evitare che il codice sembri ridondante.
from datetime import datetime
Produzione:
Date: 1987-10-14 22:22:45
Per convertire il datetime in un altro formato, datetime()
ha anche la funzione di utilità strftime()
che fornisce la stessa funzionalità di 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)
Produzione:
Formatted Date: Wednesday, October 14, 1987 22:22:45
In sintesi, questi sono i due modi principali per convertire Epoch in formato datetime in Python. Entrambi i moduli time
e datetime
forniscono funzioni che possono essere convenientemente utilizzate per la conversione datetime.
Entrambi i moduli hanno la funzione strftime()
, che è un modo conveniente per formattare le date.
Ecco un riferimento per familiarizzare con i formati datetime in Python per poter personalizzare la formattazione della data usando strftime()
.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn