1139 Stimmen

Umwandlung einer Unix-Zeitstempel-Zeichenkette in ein lesbares Datum

Ich habe eine Zeichenfolge, die einen Unix-Zeitstempel (z. B. "1284101485") in Python darstellt, und ich möchte es in ein lesbares Datum konvertieren. Wenn ich time.strftime erhalte ich eine 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

5 Stimmen

Link zur Frage der Rückumwandlung: stackoverflow.com/q/19801727/3273031

13voto

Nick Tsai Punkte 3357

Utilice datetime.strftime(format) :

from datetime import datetime
unixtime = int('1284101485')

# Print with local time
print(datetime.fromtimestamp(unixtime).strftime('%Y-%m-%d %H:%M:%S'))

# Print with UTC time
print(datetime.utcfromtimestamp(unixtime).strftime('%Y-%m-%d %H:%M:%S'))

12voto

FObersteiner Punkte 16343

Beachten Sie, dass utcfromtimestamp kann dazu führen unerwartete Ergebnisse da es ein naives Datetime-Objekt zurückgibt. Python behandelt naive datetime als Ortszeit - während sich die UNIX-Zeit auf UTC bezieht.

Diese Zweideutigkeit kann vermieden werden, indem die tz Argument in fromtimestamp :

from datetime import datetime, timezone

dtobj = datetime.fromtimestamp(1284101485, timezone.utc)

>>> print(repr(dtobj))
datetime.datetime(2010, 9, 10, 6, 51, 25, tzinfo=datetime.timezone.utc)

Jetzt können Sie in eine Zeichenkette formatieren, z. B. in ein ISO8601-konformes Format:

>>> print(dtobj.isoformat(timespec='milliseconds').replace('+00:00', 'Z'))
2010-09-10T06:51:25.000Z

9voto

Deepak Punkte 91

Verwenden Sie die folgenden Codes, ich hoffe, sie lösen Ihr Problem.

import datetime as dt

print(dt.datetime.fromtimestamp(int("1284101485")).strftime('%Y-%m-%d %H:%M:%S'))

7voto

itsaruns Punkte 599
import datetime
temp = datetime.datetime.fromtimestamp(1386181800).strftime('%Y-%m-%d %H:%M:%S')
print temp

6voto

h3xus Punkte 63

Eine andere Möglichkeit, dies zu tun, ist die Verwendung von gmtime und der Funktion format;

from time import gmtime
print('{}-{}-{} {}:{}:{}'.format(*gmtime(1538654264.703337)))

Sortie : 2018-10-4 11:57:44

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X