Python - Datums- und Zeitvergleich mit Zeitstempeln, Zeitdelta

Ich habe die letzte Stunde damit verbracht, mich in den Python-Dokumenten und vielen SO-Fragen umzusehen. Bitte verzeihen Sie mir, dass ich ein weiterer Python-Neuling bin, der vom Rätsel der Zeitverschiebung in Python gefangen ist.

Mein Ziel ist es,Ermitteln Sie die Differenz zwischen der aktuellen Uhrzeit und einem bestimmten Datum / einer bestimmten Uhrzeit, unabhängig davon, ob Sie sich in der Vergangenheit oder in der Zukunft befinden, und geben Sie ein funktionsfähiges Format wie Sekunden zurück.

Wenn die Eingaben beispielsweise 14.00 Uhr und 16.00 Uhr (jetzt) ​​sind, möchte ich sagen, dass "-7200" das Ereignis darstellt, das vor zwei Stunden aufgetreten ist. Wenn die Eingaben Fr. 16.00 Uhr (jetzt) ​​und So. 17.00 Uhr (heute) sind, sollte die Ausgabe "176400" Sekunden sein, was zwei Tagen und einer Stunde ab jetzt entspricht.

Hier sind die Dinge, die ich versucht habe ...

Meine erste Version war eine Funktion, die einen Zeichenfolge-Zeitstempel verwendete, ihn zu mehreren Variablen zusammensetzte und diese dann verglich. Es war klobig mit vielen Fehlern und ich stelle mir vor, wenn ich es hier posten würde, wäre ich verantwortlich für ein Programmierer, der sich übergeben würde.

Ich bin auf diese magische Timedelta-Funktion gestoßen und habe die Dokumente und SO untersucht, aber ich glaube nicht, dass sie das tut, wonach ich suche.

Ich hatte die Idee, beide Zeitstempel in Sekunden seit der Epoche zu konvertieren und dann zu subtrahieren, aber dies wird zu einem Problem, wenn die Subtraktion in der falschen Reihenfolge erfolgt (verschiedene Fälle, wenn das Ereignis in der Zukunft liegt), und ich möchte zu überprüfende if-Anweisungen hinzufügen Das Vorzeichen der Sekunden wäre klobig und etwas zu vermeiden.

Dies ist mein aktueller Code (muss für den bidirektionalen Vergleich noch korrigiert werden), der aus einer zuvor gelösten SO-Frage stammt:

now = time.strftime("%a %b %d %H:%M:%S %Y")
then = time.ctime(os.path.getmtime("x.cache"))
tdelta = datetime.strptime(now, '%a %b %d %H:%M:%S %Y') - datetime.strptime(then, '%a %b %d %H:%M:%S %Y')

Und ich habe das Gefühl, dass ich irgendwie in der Lage sein sollte, Sekunden daraus zu ziehen, wie in dieser Frage:Pythons Zeitdelta: Kann ich nicht einfach in der gewünschten Zeiteinheit den Wert der gesamten Differenz ermitteln?

Aber ich weiß nicht, wie ich diese Punkte verbinden soll.

Wie kann ich das erreichen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage