Es gibt zwei Teile:
- Konvertieren Sie den Unix-Zeitstempel ("Sekunden seit der Epoche") in die Ortszeit
- Zeigen Sie die Ortszeit im gewünschten Format an.
Eine tragbare Methode, um die Ortszeit abzurufen, die auch dann funktioniert, wenn die lokale Zeitzone in der Vergangenheit einen anderen utc-Offset hatte und Python keinen Zugriff auf die tz-Datenbank hat, ist die Verwendung einer pytz
Zeitzone:
#!/usr/bin/env python
from datetime import datetime
import tzlocal # $ pip install tzlocal
unix_timestamp = float("1284101485")
local_timezone = tzlocal.get_localzone() # get pytz timezone
local_time = datetime.fromtimestamp(unix_timestamp, local_timezone)
Zur Anzeige können Sie ein beliebiges Zeitformat verwenden, das von Ihrem System unterstützt wird, z.
print(local_time.strftime("%Y-%m-%d %H:%M:%S.%f%z (%Z)"))
print(local_time.strftime("%B %d %Y")) # print date in your format
Wenn Sie keine Ortszeit benötigen, erhalten Sie stattdessen eine lesbare UTC-Zeit:
utc_time = datetime.utcfromtimestamp(unix_timestamp)
print(utc_time.strftime("%Y-%m-%d %H:%M:%S.%f+00:00 (UTC)"))
Wenn Sie sich nicht für die Zeitzonenprobleme interessieren, die sich auf das zurückgegebene Datum auswirken könnten, oder wenn Python Zugriff auf die tz-Datenbank auf Ihrem System hat:
local_time = datetime.fromtimestamp(unix_timestamp)
print(local_time.strftime("%Y-%m-%d %H:%M:%S.%f"))
Unter Python 3 können Sie eine zeitzonenbezogene Datums- und Uhrzeitangabe nur mit stdlib erhalten (der UTC-Offset ist möglicherweise falsch, wenn Python auf Ihrem System keinen Zugriff auf die tz-Datenbank hat, z. B. unter Windows):
#!/usr/bin/env python3
from datetime import datetime, timezone
utc_time = datetime.fromtimestamp(unix_timestamp, timezone.utc)
local_time = utc_time.astimezone()
print(local_time.strftime("%Y-%m-%d %H:%M:%S.%f%z (%Z)"))
Funktionen des time
Moduls sind Thin Wrapper um die entsprechende C-API und daher möglicherweise weniger portabel als die entsprechenden datetime
Methoden, da Sie sie sonst auch verwenden könnten:
#!/usr/bin/env python
import time
unix_timestamp = int("1284101485")
utc_time = time.gmtime(unix_timestamp)
local_time = time.localtime(unix_timestamp)
print(time.strftime("%Y-%m-%d %H:%M:%S", local_time))
print(time.strftime("%Y-%m-%d %H:%M:%S+00:00 (UTC)", utc_time))