Pythonで秒換算での経過時間計算

今作っているアプリで、2つのdatetime型時間データ間の経過時間を、秒で計算する必要が出てきた。

単純に引き算すれと、timedelta型の差が取得できる。
でも、timedelta型は、日数、時間、分、秒をそれぞれメンバ変数で持っていて、それを秒に換算してくれるイケてるメソッドがない。

意外とイケてないなぁ・・・・
日、時間、分をそれぞれ秒換算して計算することはできるけど、マイナス等を考慮して色々作るのは面倒臭いしなぁ・・・・
とウジウジしながら色々と試行錯誤した結果、以下のやり方が一番スッキリしているのではないかという結論に。

from datetime import datetime
import time

# エポックからの経過秒数に変換
def dt2sec(dt):
    return int(time.mktime(datetime.timetuple(dt)))

# dt2からdt1までで経過した秒数を計算
result = dt2sec(dt1) - dt2sec(dt2)

# ついでに経過分数
result2 = result // 60

もっと楽ちんなやり方があったら教えてください・・・

© 2009-2017 Osajiru All Rights Reserved.