Datumsunterschied in Minuten in Python
Wie berechne ich die Differenz in Zeit in Minuten für die folgenden Zeitstempel in Python?
2010-01-01 17:31:22
2010-01-03 17:31:22
Kommentar zu dem Problem
nicht sicher, ob es möglich ist, aber sollten Sie Ihre Antwort akzeptiert, da das man Sie wieder nicht in allen Fällen funktionieren, und könnte dazu führen, dass Menschen Probleme.
InformationsquelleAutor der Frage Hulk | 2010-05-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort RSabet
RSabet Antwort funktioniert nicht in den Fällen, in denen die Termine haben nicht die gleichen genaue Zeit.
Ursprünglichen problem:
d2-d1 gibt Sie ein datetime.timedelta und wenn Sie Tage es wird nur zeigen Ihnen die Tage in der timedelta. In diesem Fall funktioniert es gut, aber wenn Sie die folgenden.
Wäre es immer noch die gleiche Antwort, da es immer noch gibt für 2 Tage; es ignoriert die Stunden, Minuten und Sekunde aus der timedelta.
Ein besserer Ansatz wäre zum konvertieren der Daten in ein gängiges format und führen Sie dann die Berechnung. Der einfachste Weg dies zu tun ist, um Sie zu konvertieren von Unix-Zeitstempeln. Hier ist der code dazu.
InformationsquelleAutor der Antwort Ken Cochrane
InformationsquelleAutor der Antwort Evalds Urtans
Falls jemand es nicht bemerkt, ein Weg dies zu tun wäre, zu kombinieren, Christophe und RSabet Antworten:
InformationsquelleAutor der Antwort Jon F.
Verwenden
datetime.strptime()
zu analysieren, in datetime-Instanzen, und dann berechnen Sie die Differenz, und schließlich konvertieren Sie den Unterschied in Minuten.InformationsquelleAutor der Antwort unwind
Hängt das Ergebnis von der Zeitzone, das entspricht der Eingabe von Uhrzeit-strings.
Einfachsten Fall, wenn beide Daten verwenden, die gleich der utc-offset:
Wenn Ihr Python-version nicht unterstützt
td //timedelta
; ersetzen Sie es mitint(td.total_seconds() //60)
.Wenn die input-Zeit in die lokale Zeitzone, das könnte verschiedene utc-offset zu unterschiedlichen Zeiten z.B., es ist Sommerzeit, dann sollten Sie sich
dt1
,dt2
in bewusst datetime-Objekte zu finden, bevor der Unterschied zu berücksichtigen, die möglichen Veränderungen in der utc-offset.Portable Weg, um ein Kenntnis der lokalen datetime-Objekte zu verwenden
pytz
Zeitzonen:Wenn entweder
dt1
oderdt2
entsprechen einer mehrdeutigen Zeit-dann wird die Standardis_dst=False
wird verwendet, um keine Verwechslungen. Sie könnteis_dst=None
zu heben, eine Ausnahme für nicht eindeutig oder nicht vorhandene lokale Zeit statt.Wenn Sie nicht installieren können 3rd-party-Module dann
Zeit.mktime()
verwendet werden könnte, von @Ken Cochrane Antwort , finden Sie die richtige utc-offset auf einigen Plattformen für einige Termine in einigen Zeitzonen-wenn Sie don ' T brauchen eine konsequente (aber vielleicht falsche) Ergebnis, dann ist es viel besser, als das zu tundt2 - dt1
mit naiv-datetime-Objekte, die immer ausfällt, wenn die entsprechenden utc-offsets Verschieden sind.InformationsquelleAutor der Antwort jfs
Berechnen, mit einem anderen Zeit-Datum:
InformationsquelleAutor der Antwort Christophe
Wie Art schon sagte, müssen Sie
datetime.datetime's
strptime
Methode:InformationsquelleAutor der Antwort Gezim
In Andere Wege, um den Unterschied zwischen Datum;
Dank
InformationsquelleAutor der Antwort Anurag Pandey