Python で指定時刻二つの差分を秒単位で求める

何度もググるので記事にした。

たとえば 14:15:22 - 13:27:33 を計算したい場合、以下のようにする。

import datetime
dummydate = (2011, 11, 11)
dt_start = datetime.datetime(*dummydate, 13, 27, 33)
dt_end = datetime.datetime(*dummydate, 14, 15, 22)
delta = dt_end - dt_start
seconds_with_float = delta.total_seconds()
print(seconds_with_float) # 2869.0

ポイントは、

  • datetime ライブラリの datetime クラスを使う
  • datetime クラス同士を引き算してやれば差分(delta)が計算される
  • datetime クラスは年月日も要求するのでダミー値を適当に埋める
  • delta オブジェクトの total_seconds() で秒単位に変換できる