Ich habe diese Funktion, die einen Zeitstempel in ein Datetime-Objekt konvertiert, das entweder sagt; "Heute um 10:56 Uhr" oder "Gestern um 1:06 Uhr" oder andere ...Zeitstempel zu lange Datetime
Ich habe derzeit einige Probleme damit.
otherdate = 1504246379
now = time.time()
if otherdate:
dt = now - otherdate
offset = dt.seconds + (dt.days * 60 * 60 * 24)
if offset:
delta_s = offset % 60
offset /= 60
delta_m = offset % 60
offset /= 60
delta_h = offset % 24
offset /= 24
delta_d = offset
else:
raise ValueError("Must supply otherdate or offset (from now)")
if delta_d > 1:
if delta_d > 6:
date = now + timedelta(days=-delta_d, hours=-delta_h, minutes=-delta_m)
return date.strftime('%A, %Y %B %m, %H:%I')
else:
wday = now + timedelta(days=-delta_d)
return wday.strftime('%A')
if delta_d == 1:
return "Yesterday"
if delta_h > 0:
return "%dh%dm ago" % (delta_h, delta_m)
if delta_m > 0:
return "%dm%ds ago" % (delta_m, delta_s)
else:
return "%ds ago" % delta_s
Der aktuelle Fehler I erhalten ist:
Traceback (most recent call last):
File "test.py", line 69, in <module>
date = get_long_date(timestamp)
File "test.py", line 40, in get_long_date
offset = dt.seconds + (dt.days * 60 * 60 * 24)
AttributeError: 'float' object has no attribute 'seconds'
Also ging ich hinzufügen:
dt = timedelta(dt)
und löscht den Fehler, aber wenn ich die delta_d (Tage Offset) drucken es ist eine negative Zahl ... Kann jemand mir helfen, meine Funktion zu vervollständigen?
Danke,
Denis Angell
Müssen Sie die Funktionalität der Parsing-Datetimes wirklich selbst implementieren oder können Sie eine andere Bibliothek verwenden? Ich rate Ihnen, sich selbst zu implementieren, denn wenn Sie es richtig machen wollen, ist es nicht so trivial. – alphiii
Prob nicht, haben Sie eine Bibliothek, die Sie empfehlen? Eine, die mir eine Ausgabe basierend auf der Offset-Zeit geben würde? –
Welche Einheit ist 'otherdate = 1504246379' in Sekunden? –