Pythonで日付の比較をする方法を完全解説!初心者でもわかるdatetimeオブジェクトの使い方
生徒
「Pythonで日付を比べたいんですが、今日と昨日、どっちが新しいかってどうやって判断するんですか?」
先生
「Pythonでは、datetimeという仕組みを使うと、日付や時間を数字のように比べることができます。」
生徒
「数字みたいに比べられるんですか?パソコンをほとんど触ったことがなくても大丈夫でしょうか?」
先生
「大丈夫です。今日はパソコンが初めての人でもわかるように、日付の比較を一から説明していきます。」
1. Pythonで日付を扱うとはどういうこと?
Pythonで日付を扱うというのは、「今日はいつか」「この日付はあの日より前か後か」をパソコンに判断させることです。人間はカレンダーを見て直感的に判断できますが、パソコンは数字として理解させる必要があります。
そこで使われるのが、Pythonに最初から用意されているdatetimeという仕組みです。これは「年・月・日・時間」をひとまとめにした箱のようなものだと考えると分かりやすいです。
2. datetimeオブジェクトとは何かを知ろう
datetimeオブジェクトとは、日付や時間の情報をまとめて持つPythonのデータです。データとは、パソコンが覚えておく情報のことです。
例えば「2026年1月1日」という日付を、そのまま文字で覚えさせるのではなく、「年は2026、月は1、日は1」という形で整理して保存します。これにより、日付の比較や計算が簡単になります。
from datetime import datetime
today = datetime(2026, 1, 22)
print(today)
2026-01-22 00:00:00
3. Pythonで日付を比較する基本ルール
Pythonでは、datetimeオブジェクト同士を比べるときに、数字と同じ記号を使います。たとえば「小さい」「大きい」を表す記号です。
具体的には、<(より前)、>(より後)、==(同じ日)といった比較演算子を使います。比較演算子とは、2つのものを比べるための記号のことです。
from datetime import datetime
day1 = datetime(2026, 1, 1)
day2 = datetime(2026, 1, 10)
if day1 < day2:
print("day1はday2より前の日付です")
day1はday2より前の日付です
4. 今日と過去の日付を比較してみよう
実際によく使われるのが、「今日より前か後か」を調べる処理です。これは、期限切れのチェックや予約日の確認などで使われます。
Pythonでは、今この瞬間の日付と時間を取得することもできます。それがdatetime.now()です。
from datetime import datetime
today = datetime.now()
deadline = datetime(2025, 12, 31)
if today > deadline:
print("期限は過ぎています")
else:
print("まだ期限内です")
まだ期限内です
5. 同じ日付かどうかを比較する方法
日付が「同じかどうか」を調べたい場合もあります。たとえば、誕生日が今日かどうかを確認するような場面です。
この場合は、==という記号を使います。これは「イコール」と読み、左右が同じかどうかを調べる意味があります。
from datetime import datetime
birthday = datetime(2026, 1, 22)
today = datetime(2026, 1, 22)
if birthday == today:
print("今日は誕生日です")
今日は誕生日です
6. 日付比較で初心者がつまずきやすいポイント
初心者の方がよく間違えるのが、「文字としての日付」と「datetimeオブジェクトの日付」を混ぜてしまうことです。見た目が同じでも、中身が違うと比較できません。
また、時間まで含まれている点にも注意が必要です。同じ日でも時間が違うと「同じではない」と判断されることがあります。
7. 日付の比較は現実のカレンダーと同じ感覚で考えよう
Pythonでの日付比較は、カレンダーをめくって前後を確認する感覚とよく似ています。未来か過去か、同じ日かどうかを、パソコンが正確に判断してくれます。
datetimeオブジェクトを使えば、複雑な計算をしなくても、シンプルな記号で日付の比較ができるようになります。