Ich habe eine Zeichenfolge, die einen Unix-Zeitstempel (dh "1284101485") in Python darstellt, und möchte sie in ein lesbares Datum konvertieren. Wenn ich benutze time.strftime
, bekomme ich ein TypeError
:
>>>import time
>>>print time.strftime("%B %d %Y", "1284101485")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: argument must be 9-item sequence, not str
python
datetime
unix-timestamp
strftime
VeryNewToPython
quelle
quelle
Antworten:
Verwendung -
datetime
Modul:quelle
.fromtimestamp()
kann für vergangene Daten fehlschlagen, wenn eine lokale Zeitzone einen anderen UTC-Offset hat. Sie benötigen eine historische Zeitzonendatenbank, wie sie vompytz
Modul (oder Ihrem Betriebssystem) bereitgestellt wird . Oder arbeiten Sie einfach in UTC und verwenden Sie.utcfromtimestamp()
.pytz
. Wenn es unklar ist; Stellen Sie eine separate Frage zum Stapelüberlauf.pytz
gepostet , die die Lösung demonstriert .Entnommen aus http://seehuhn.de/pages/pdate
quelle
Die am häufigsten gewählte Antwort schlägt die Verwendung von fromtimestamp vor, das fehleranfällig ist, da es die lokale Zeitzone verwendet. Um Probleme zu vermeiden, ist es besser, UTC zu verwenden:
Dabei ist posix_time die Posix-Epochenzeit, die Sie konvertieren möchten
quelle
quelle
time.ctime()
undtime.localtime()
kann für vergangene Daten fehlschlagen, wenn eine lokale Zeitzone einen anderen utc-Offset hat. Sie benötigen eine historische Zeitzonendatenbank, wie sie vompytz
Modul (oder Ihrem Betriebssystem) bereitgestellt wird . Oder arbeiten Sie einfach in UTC und verwenden Sietime.gmtime()
.datetime
bietet möglicherweise einen größeren Datumsbereich und kann daherdatetime.utcfromtimestamp()
anstelle vontime
Funktionen verwendet werden.Es gibt zwei Teile:
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:Zur Anzeige können Sie ein beliebiges Zeitformat verwenden, das von Ihrem System unterstützt wird, z.
Wenn Sie keine Ortszeit benötigen, erhalten Sie stattdessen eine lesbare UTC-Zeit:
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:
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):
Funktionen des
time
Moduls sind Thin Wrapper um die entsprechende C-API und daher möglicherweise weniger portabel als die entsprechendendatetime
Methoden, da Sie sie sonst auch verwenden könnten:quelle
Für einen von Menschen lesbaren Zeitstempel aus einem UNIX-Zeitstempel habe ich diesen zuvor in Skripten verwendet:
Ausgabe:
"26. Dezember 2012"
quelle
Sie können die aktuelle Zeit folgendermaßen konvertieren
So konvertieren Sie ein Datum in einer Zeichenfolge in verschiedene Formate.
quelle
Andere als die Verwendung von Zeit / Datumzeit - Paket, Pandas können auch die gleiche problem.Here zu lösen verwendet werden , wie wir sie verwenden können Pandas zu konvertieren Zeitstempel zu lesbares Datum :
Zeitstempel können in zwei Formaten vorliegen:
13 Ziffern (Millisekunden) - Um Millisekunden in das Datum umzuwandeln , verwenden Sie:
10 Ziffern (Sekunden) - Um Sekunden in Datum umzuwandeln , verwenden Sie:
quelle
Holen Sie sich das lesbare Datum aus dem Zeitstempel mit der Uhrzeit. Sie können auch das Format des Datums ändern.
quelle
In Python 3.6+:
Ausgabe:
Erläuterung:
type(value)
quelle
quelle
Eine andere Möglichkeit, dies mit gmtime und der Formatfunktion zu tun;
Ausgabe:
2018-10-4 11:57:44
quelle
Ich habe gerade erfolgreich verwendet:
quelle
schnell und schmutzig ein Liner:
'2013-5-5-1-9-43'
quelle
Sie können easy_date verwenden , um es einfach zu machen:
quelle
strptime
undstrftime
ist nicht intuitiv ... und sogar nicht lesbar ... Aber ich verstehe und respektiere Ihre Meinung