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

83voto

Contango Punkte 70203

In Python 3.6+:

import datetime

timestamp = 1642445213
value = datetime.datetime.fromtimestamp(timestamp)
print(f"{value:%Y-%m-%d %H:%M:%S}")

Ausgabe (Ortszeit)

2022-01-17 20:46:53

Erläuterung

Bonus

Um das Datum in einer Zeichenkette zu speichern und dann zu drucken, verwenden Sie dies:

my_date = f"{value:%Y-%m-%d %H:%M:%S}"
print(my_date)

Zur Ausgabe in UTC:

value = datetime.datetime.fromtimestamp(timestamp, tz=datetime.timezone.utc)
# 2022-01-17 18:50:52

45voto

shubham Punkte 546

Anders als die Verwendung von Uhrzeit/Uhrzeit Paket, Pandas kann auch zur Lösung desselben Problems verwendet werden, und zwar auf folgende Weise Pandas zu konvertieren Zeitstempel a lesbares Datum :

Zeitstempel können in zwei Formaten vorliegen:

  1. 13 Ziffern (Millisekunden) - Zum Umrechnen Millisekunden bis heute, verwenden:

    import pandas
    result_ms=pandas.to_datetime('1493530261000',unit='ms')
    str(result_ms)
    
    Output: '2017-04-30 05:31:01'
  2. 10 Ziffern (Sekunden) - Umrechnen Sekunden bis heute, verwenden:

    import pandas
    result_s=pandas.to_datetime('1493530261',unit='s')
    str(result_s)
    
    Output: '2017-04-30 05:31:01'

38voto

Jared Burrows Punkte 52572

Um aus einem UNIX-Zeitstempel einen für Menschen lesbaren Zeitstempel zu erzeugen, habe ich dies bereits in Skripten verwendet:

import os, datetime

datetime.datetime.fromtimestamp(float(os.path.getmtime("FILE"))).strftime("%B %d, %Y")

Sortie :

'26. Dezember 2012'.

29voto

Nick Punkte 1777

Sie können die aktuelle Zeit wie folgt umrechnen

t=datetime.fromtimestamp(time.time())
t.strftime('%Y-%m-%d')
'2012-03-07'

Konvertierung eines Datums in verschiedene Formate.

import datetime,time

def createDateObject(str_date,strFormat="%Y-%m-%d"):    
    timeStamp = time.mktime(time.strptime(str_date,strFormat))
    return datetime.datetime.fromtimestamp(timeStamp)

def FormatDate(objectDate,strFormat="%Y-%m-%d"):
    return objectDate.strftime(strFormat)

Usage
=====
o=createDateObject('2013-03-03')
print FormatDate(o,'%d-%m-%Y')

Output 03-03-2013

24voto

Rishabh Jhalani Punkte 949
timestamp ="124542124"
value = datetime.datetime.fromtimestamp(timestamp)
exct_time = value.strftime('%d %B %Y %H:%M:%S')

Holen Sie sich das lesbare Datum von Zeitstempel mit Zeit auch, auch können Sie das Format des Datums zu ändern.

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