私は過去1時間、Pythonのドキュメントと多くのSOの質問を掘り下げてきました。Pythonの時差の謎にとらわれたもう1人のPython初心者であることをお許しください。
私の目標は、過去/未来に関係なく、現在の時刻と特定の日付/時刻の違いを判別し、秒などの実行可能な形式を返すことです。
たとえば、入力が午後2時と午後4時(現在)の場合、2時間前に発生したイベントを表す「-7200」と言います。入力が金曜日の午後4時(現在)と日曜日の午後5時の場合、出力は「176400」秒になります。これは、現在から2日1時間を表します。
これが私が試したことです...
私の最初のバージョンは、文字列のタイムスタンプを取得し、それを複数の変数につなぎ合わせてから、それらを比較する関数でした。それは多くのエラーで不格好でした、そして私がそれをここに投稿したならば、私はプログラマーが投げる責任があるだろうと想像します。
私はこの魔法のtimedelta関数に出くわし、ドキュメントとSOを調べましたが、それが私が探しているものを実行するとは思いません。
両方のタイムスタンプをエポックからの秒数に変換してから減算するというアイデアがありましたが、減算の順序が間違っていると(イベントが将来発生する場合は別のケース)、これが問題になり、ifステートメントを追加してチェックしたいと思います秒の記号は不格好で、避けるべきものです。
これは私の現在のコードです(「双方向」比較のために修正する必要があります)、以前に解決されたSOの質問から:
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')
そして、私はこの質問のように、どういうわけかこれから秒を引き出すことができるはずだと感じています: Pythonのtimedelta:違い全体の値が欲しい時間単位を取得することはできませんか?
しかし、私はこれらの点を接続する方法に迷っています。
どうすればこれを達成できますか?