カテゴリ: Python 更新日: 2026/01/13

Pythonのtimedelta.total_seconds()を完全ガイド!初心者でもわかる日付と秒の計算テクニック

Pythonで日付を秒単位で計算するテクニック(timedelta.total\_seconds())
Pythonで日付を秒単位で計算するテクニック(timedelta.total\_seconds())

先生と生徒の会話形式で理解しよう

生徒

「Pythonで日付同士の差を秒で計算したいんですが、どうすればいいんでしょうか?」

先生

「Pythonにはtimedeltaという便利な仕組みがあって、日付の差を扱うときにとても役立ちます。特にtotal_seconds()を使うと秒単位で値を取り出せますよ。」

生徒

「秒で取り出せると便利そうですね!どうやって使うんですか?」

先生

「それでは、初心者でも理解しやすいように一緒に見ていきましょう。」

1. timedelta.total_seconds()とは?

1. timedelta.total_seconds()とは?
1. timedelta.total_seconds()とは?

Pythonの日時操作でよく使われるのがdatetimeモジュールです。その中にあるtimedeltaは「時間の差」をあらわすための仕組みで、二つの日付を引き算したときに自動的に生成されます。

例えば、「今日」と「昨日」の差を計算すると「1日」という結果になりますが、これを秒として扱いたい場面は多くあります。秒に変換することで、プログラム内の処理がしやすくなり、細かな計算にも対応できます。

このとき使用するのがtotal_seconds()です。これは、timedeltaが持っている時間差を「全部まとめて秒で返してくれる」便利なメソッドです。

2. timedelta.total_seconds()の基本的な使い方

2. timedelta.total_seconds()の基本的な使い方
2. timedelta.total_seconds()の基本的な使い方

まず、二つの日付や時間を用意して、それらの差を計算します。それを total_seconds() に渡すだけで、すぐに秒で結果が返ってきます。初心者でも扱いやすい非常にシンプルな書き方です。


from datetime import datetime

start = datetime(2024, 1, 1, 0, 0, 0)
end = datetime(2024, 1, 2, 12, 0, 0)

diff = end - start
print(diff.total_seconds())

129600.0

上の例では、「1日と12時間」という差があり、これを秒にすると129600秒となります。初心者の場合、日付を秒に変換すると聞くと難しく感じるかもしれませんが、Pythonが自動的に内部で計算してくれるため、実際には非常に簡単です。

3. 日時操作を秒で扱うメリット

3. 日時操作を秒で扱うメリット
3. 日時操作を秒で扱うメリット

Pythonで日付と時間を扱うとき、秒で計算できると非常に便利です。たとえば、データのログ分析や処理の待ち時間を計算する場面では、細かい時間差を正確に扱う必要があります。秒単位で扱うことで、プログラムの挙動をより正確に制御できるようになります。

また、秒に変換しておけば「何時間」「何分」といった変換も簡単にできます。プログラムの見通しが良くなり、コードの保守性も上がります。

4. 日付の差を計算する実用例

4. 日付の差を計算する実用例
4. 日付の差を計算する実用例

実際の開発現場では、一定時間の経過を検知したり、ユーザーがいつ操作を行ったかを記録して比較したりする場面が多くなります。そのようなときに total_seconds() が役立ちます。初心者でも理解しやすい例として、以下のような使い方があります。


from datetime import datetime

last_login = datetime(2024, 5, 1, 10, 0, 0)
now = datetime(2024, 5, 1, 12, 30, 0)

diff = now - last_login
seconds = diff.total_seconds()

if seconds > 3600:
    print("最後のログインから1時間以上経過しています。")

最後のログインから1時間以上経過しています。

ユーザーの操作履歴をチェックする場合など、秒単位で判断する仕組みは非常に多くのシステムで使われています。Pythonの日時操作を理解しておけば、こうした場面にも柔軟に対応できるようになります。

5. timedeltaとtotal_seconds()の仕組みをイメージで理解する

5. timedeltaとtotal_seconds()の仕組みをイメージで理解する
5. timedeltaとtotal_seconds()の仕組みをイメージで理解する

初心者向けにもう少しイメージしやすい説明をすると、timedeltaは「時間のかたまり」を持っている箱のようなものと考えると理解しやすくなります。この箱の中には「日」「時間」「分」「秒」が入っていますが、total_seconds()を呼び出すと、この箱に入っているすべての時間を合計した秒数だけを取り出すイメージです。

つまり、total_seconds()は箱の仕組みを気にせず、いつでも「秒」で取り出せる便利な取り出し口だと考えると覚えやすくなります。日付操作が苦手な人でも自然に使えるようになるので、日時操作の基本として押さえておくと良いでしょう。

カテゴリの一覧へ
新着記事
New1
Python
Pythonで過去の日付を取得する方法(timedeltaのマイナス活用)
New2
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
New3
Django
DjangoのURLルーティングとは?初心者向けに仕組みと役割をやさしく解説
New4
Flask
Flask×Celeryでタスクが失敗した場合のリトライ設定を完全解説|初心者でもわかる非同期処理とタスク管理
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで現在の日付・時刻を取得する方法(datetime.now() / today())
No.2
Java&Spring記事人気No2
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.3
Java&Spring記事人気No3
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.4
Java&Spring記事人気No4
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.5
Java&Spring記事人気No5
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.6
Java&Spring記事人気No6
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.7
Java&Spring記事人気No7
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.8
Java&Spring記事人気No8
Flask
Flaskで開発中にデータベースを初期化する方法!初心者でもわかる便利なTips