Pythonで異なるタイムゾーンでdatetimeを差分するときに、有効なtimedelta
インスタンスを取得するにはどうすればよいですか?タイムゾーンが異なる場合、タイムデルタは常に0になっています。Pythonで異なるタイムゾーンを持つdatetimes間のtimedeltaを計算する方法
>>> from dateutil.parser import parse
>>> dt0=parse('2017-02-06 18:14:32-05:00')
>>> dt0
datetime.datetime(2017, 2, 6, 18, 14, 32, tzinfo=tzoffset(None, -18000))
>>> dt1=parse('2017-02-06 23:14:32+00:00')
>>> dt1
datetime.datetime(2017, 2, 6, 23, 02, 12, tzinfo=tzutc())
>>> (dt1-dt0).total_seconds()
0.0
これは私には意味がありません。 Pythonのdatetimeクラスは、両方の値を内部的にUTCに正規化し、それらの値に基づいてtimedeltaを返すのに十分なほどスマートになると思っていたでしょう。または例外をスローします。代わりに0を返し、両方の日付時刻が等しいことを意味します。明らかにそうではありません。私はここで間違って何をしていますか?
「18:14:32 -05:00」と「23:14:32 + 0」*は等しくなります。 5時間の違いがありますが、これもタイムゾーンの違いです。 – RemcoGerlich
あなたの文字列と 'dt1'はお互いに一致しません。時間がちょうど5時間離れていて、タイムゾーンも同じであれば、その違いがゼロになるとは思わないでしょうか? –