【Python】datetime で timedelta に含まれる『秒数の合計』を取得するコード例

Python の datetimeデートタイム モジュールで、timedeltaタイムデルタ の期間に含まれる『秒数びょうすう合計ごうけい』を取得するコード例です。

トータルセカンズ timedelta.total_seconds() を使うとできました。

timedelta の『日数にっすう daysデイス』、『びょう secondsセカンズ』、『マイクロびょう microsecondsマイクロセカンズ』から、自分で計算する手間がはぶけて、とても便利でした。

また、取得した秒数の合計には、マイクロ秒の部分も含まれていました。

マイクロ秒は、小数点以下の秒数として、取得できました。

使用したライブラリ

Python 公式マニュアルの場所です。

datetime(デートタイム) モジュール

組み込み機能

コード例

timedeltaタイムデルタ の期間に含まれる『秒数びょうすう合計ごうけい』を取得する Python コード例です。

timedelta(days=1) の秒数を取得

1 日は 24 時間で、1 時間は 60 分で、1 分は 60 秒です。

なので、1 日の秒数は、24 * 60 * 60 = 86400 秒となるはず。

import datetime

t = datetime.timedelta(days=1)
print('datetime.timedelta(days=1)')
print(f'{t}')
print(f'days: {t.days}')
print(f'seconds: {t.seconds}')
print(f'microseconds: {t.microseconds}\n')

t_seconds = t.total_seconds()
print(f'total_seconds: {t_seconds}\n')

実行結果(days=1 の秒数)

意図いとしたとおり、86400 秒が取得できていました。

datetime.timedelta(days=1)
1 day, 0:00:00
days: 1
seconds: 0
microseconds: 0

total_seconds: 86400.0

timedelta(days=1, seconds=1) の秒数を取得

1日と1秒を指定した時の秒数です。

import datetime

t = datetime.timedelta(days=1, seconds=1)
print('datetime.timedelta(days=1, seconds=1)')
print(f'{t}')
print(f'days: {t.days}')
print(f'seconds: {t.seconds}')
print(f'microseconds: {t.microseconds}\n')

t_seconds = t.total_seconds()
print(f'total_seconds: {t_seconds}\n')

実行結果(days=1, seconds=1 の秒数)

datetime.timedelta(days=1, seconds=1)
1 day, 0:00:01
days: 1
seconds: 1
microseconds: 0

total_seconds: 86401.0

timedelta(days=-1) の秒数を取得

マイナスの1日を指定した時の秒数です。

import datetime

t = datetime.timedelta(days=-1)
print('datetime.timedelta(days=-1)')
print(f'{t}')
print(f'days: {t.days}')
print(f'seconds: {t.seconds}')
print(f'microseconds: {t.microseconds}\n')

t_seconds = t.total_seconds()
print(f'total_seconds: {t_seconds}\n')

実行結果(days=-1 の秒数)

datetime.timedelta(days=-1)
-1 day, 0:00:00
days: -1
seconds: 0
microseconds: 0

total_seconds: -86400.0

timedelta(days=-1, seconds=-1) の秒数を取得

マイナスの1日とマイナスの1秒を指定した時の秒数です。

import datetime

t = datetime.timedelta(days=-1, seconds=-1)
print('datetime.timedelta(days=-1, seconds=-1)')
print(f'{t}')
print(f'days: {t.days}')
print(f'seconds: {t.seconds}')
print(f'microseconds: {t.microseconds}\n')

t_seconds = t.total_seconds()
print(f'total_seconds: {t_seconds}\n')

実行結果(days=-1, seconds=-1 の秒数)

datetime.timedelta(days=-1, seconds=-1)
-2 days, 23:59:59
days: -2
seconds: 86399
microseconds: 0

total_seconds: -86401.0

timedelta(microseconds=1) の秒数を取得

1マイクロ秒を指定した時の秒数です。

import datetime

t = datetime.timedelta(microseconds=1)
print('datetime.timedelta(microseconds=1)')
print(f'{t}')
print(f'days: {t.days}')
print(f'seconds: {t.seconds}')
print(f'microseconds: {t.microseconds}\n')

t_seconds = t.total_seconds()
print(f'total_seconds: {t_seconds}')
print(f'total_seconds: {t_seconds:.7f} (.7f)\n')

実行結果(microseconds=1 の秒数)

1マイクロ秒が、小数点以下の秒数として取得できました。

datetime.timedelta(microseconds=1)
0:00:00.000001
days: 0
seconds: 0
microseconds: 1

total_seconds: 1e-06
total_seconds: 0.0000010 (.7f)

timedelta(microseconds=-1) の秒数を取得

マイナスの1マイクロ秒を指定した時の秒数です。

import datetime

t = datetime.timedelta(microseconds=-1)
print('datetime.timedelta(microseconds=-1)')
print(f'{t}')
print(f'days: {t.days}')
print(f'seconds: {t.seconds}')
print(f'microseconds: {t.microseconds}\n')

t_seconds = t.total_seconds()
print(f'total_seconds: {t_seconds}')
print(f'total_seconds: {t_seconds:.7f} (.7f)\n')

実行結果(microseconds=-1 の秒数)

マイナスの1マイクロ秒が、小数点以下の秒数として取得できました。

datetime.timedelta(microseconds=-1)
-1 day, 23:59:59.999999
days: -1
seconds: 86399
microseconds: 999999

total_seconds: -1e-06
total_seconds: -0.0000010 (.7f)
スポンサーリンク
Python評価
シェアする(押すとSNS投稿用の『編集ページ』に移動します)
フォローする(RSSフィードに移動します)
スポンサーリンク
シラベルノート
タイトルとURLをコピーしました