Epoche in Datetime umwandeln in Python

Rayven Esplanada 10 Oktober 2023
  1. Verwenden des Moduls time zum Konvertieren von Epoche in Datetime in Python
  2. Verwenden Sie das Modul datetime, um in Python Epoche in Datetime zu konvertieren
Epoche in Datetime umwandeln in Python

Dieses Tutorial stellt vor, wie man in Python Epoche-Sekunden in Datetime-Format konvertieren kann.

Epoche ist ein Begriff für die Anzahl der Sekunden, die seit dem Epochendatum - dem 1. Januar 1970 - verstrichen sind. Das Jahr 1970 ist das Veröffentlichungsdatum von UNIX OS. Die Epochenzeit wird alternativ auch als UNIX-Zeitstempel bezeichnet.

Zum Beispiel wäre die Epoche für das Datum 25. November 2020 (00:00:00) 1606262400, das ist die Anzahl der Sekunden, die seit dem 01.01.1970 bis zu diesem Datum verstrichen sind.

Verwenden des Moduls time zum Konvertieren von Epoche in Datetime in Python

Das Python-Modul time bietet komfortable zeitbezogene Funktionen. Die Funktion bietet eine Menge Unterstützung für Berechnungen im Zusammenhang mit UNIX-Zeitstempeln.

Zum Beispiel akzeptiert die Funktion time.localtime() Epochensekunden als Argument und erzeugt eine Zeitwertfolge, die aus 9 Zeitsequenzen besteht.

Lassen Sie uns für dieses Beispiel eine zufällige Epochenzeit verwenden.

import time

epoch_time = 1554723620
time_val = time.localtime(epoch_time)

print("Date in time_struct:", time_val)

Ausgabe:

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() gibt ein Tupel struct_time() mit den Details der Epochenzeit aus, das das genaue Jahr, den Monat, den Tag und andere Datumsangaben enthält, die die Epochenzeit enthält.

Das Modul time hat eine weitere Funktion time.strftime(), um das Tupel in ein Datetime-Format zu konvertieren.

Die Funktion akzeptiert 2 Argumente, das erste Argument ist eine Zeichenkette, die das angegebene Format für die Konvertierung enthält, und das zweite Argument ist das Tupel struct_time().

Konvertieren Sie nun dasselbe Epochenzeit-Beispiel von oben in ein lesbares datetime-Format.

import time

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

print("Formatted Date:", time_formatted)

Ausgabe:

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

Neben diesem Format wäre ein weiteres generisches Datumsformat der volle Name des Monats inklusive des Wochentags. Lassen Sie uns das mal ausprobieren.

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

Ein weiteres nützliches Format in strftime(), das nur ein einziges Zeichen benötigt, ist %c, das die generische Datums- und Zeitdarstellung für Locale ist.

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

print("Formatted Date:", time_formatted)

Ausgabe:

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

Verwenden Sie das Modul datetime, um in Python Epoche in Datetime zu konvertieren

datetime ist ein weiteres Modul in Python, das zeitbezogene Funktionen unterstützt. Der Unterschied besteht darin, dass sich das Modul time auf Unix-Zeitstempel konzentriert, während datetime eine breite Palette von Datums- und Zeitfunktionen unterstützt, aber dennoch viele der Operationen, die das Modul time hat.

datetime hat die Funktion fromtimestamp(), die Epochensekunden und ein datetime-Objekt akzeptiert.

Lassen Sie uns ein anderes Epochensekunden-Beispiel für dieses Modul ausprobieren.

Hinweis
Das datetime wird absichtlich zweimal wiederholt. Innerhalb des datetime-Moduls befindet sich ein datetime-Objekt mit der Funktion fromtimestamp(). Auch date und time sind Objekte innerhalb des datetime-Moduls.
import datetime

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

print("Date:", time_val)

Wenn datetime.datetime ausschließlich das Objekt ist, das innerhalb des datetime-Moduls verwendet wird, dann importieren Sie es aus dem Modul, damit der Code nicht redundant aussieht.

from datetime import datetime

Ausgabe:

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

Um die datetime in ein anderes Format zu konvertieren, hat datetime() auch die Utility-Funktion strftime(), die die gleiche Funktionalität wie time.strftime() bietet.

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)

Ausgabe:

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

Zusammengefasst sind dies die beiden wichtigsten Möglichkeiten, um in Python das Format epoch in datetime zu konvertieren. Sowohl das time- als auch das datetime-Modul stellen Funktionen zur Verfügung, die bequem für die Datetime-Konvertierung verwendet werden können.

Beide Module verfügen über die Funktion strftime(), die eine bequeme Möglichkeit zur Formatierung von Datumsangaben darstellt.

Hier ist eine Referenz, um sich mit Datumsformaten in Python vertraut zu machen, um die Datumsformatierung mit strftime() anpassen zu können.

Rayven Esplanada avatar Rayven Esplanada avatar

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

Verwandter Artikel - Python DateTime