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

Pythonで日付を比較する方法を解説!初心者でもわかるdatetimeの使い方

Pythonで日付の比較をする方法(datetimeオブジェクトの比較演算)
Pythonで日付の比較をする方法(datetimeオブジェクトの比較演算)

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

生徒

「Pythonで日付を比べることってできるんですか?例えば、今日とある日付を比べて、過去か未来かを知りたいんですが……」

先生

「もちろんできますよ。Pythonにはdatetime(デイトタイム)という便利な機能が用意されていて、それを使えば簡単に日付の比較ができるんです。」

生徒

「難しそうですが、初心者でも使えますか?」

先生

「はい、大丈夫ですよ。これから順を追って説明していきますね!」

-

1. Pythonで日付を扱うには?datetimeモジュールを使おう

1. Pythonで日付を扱うには?datetimeモジュールを使おう
1. Pythonで日付を扱うには?datetimeモジュールを使おう

Python(パイソン)で日付を扱いたいときは、まずdatetimeというモジュールを使います。「モジュール」とは、便利な機能が詰まったツール箱のようなものです。使うには、最初に次のように書きます。


from datetime import datetime

この1行で、日付や時間を自由に使える準備が整います。

2. 今日の日付を取得してみよう

2. 今日の日付を取得してみよう
2. 今日の日付を取得してみよう

Pythonで「今日の日付」を取得したいときは、次のように書きます。


today = datetime.today()
print(today)

実行すると、下のように現在の日付と時間が表示されます。


2025-09-03 14:25:32.456789

このように、datetime型(でいとたいむがた)という特別な形式で、日付と時刻が一緒になって表示されます。

3. 日付同士を比較してみよう

3. 日付同士を比較してみよう
3. 日付同士を比較してみよう

Pythonでは、datetime型同士なら「<」「>」「==」などの比較演算子(ひかくえんざんし)で、日付の早い・遅いを比べることができます。


from datetime import datetime

today = datetime.today()
target = datetime(2025, 12, 25)

if today < target:
    print("今日はまだクリスマスより前です。")
else:
    print("クリスマスはもう過ぎました。")

このように、日付を比べて「どちらが早いか・遅いか・同じか」を判断できます。

4. 日付の比較結果を利用して条件分岐

4. 日付の比較結果を利用して条件分岐
4. 日付の比較結果を利用して条件分岐

比較した結果を使って、処理を分けることもできます。これを「条件分岐(じょうけんぶんき)」と言います。たとえば、誕生日をチェックするプログラムならこんな感じです。


from datetime import datetime

birthday = datetime(2023, 5, 1)
today = datetime.today()

if today > birthday:
    print("その日は過去の日付です。")
elif today < birthday:
    print("その日は未来の日付です。")
else:
    print("今日はその日です!")

このように、日付を使ったロジックを自由に作ることができるのがPythonの便利なところです。

-

5. 日付の文字列("2025-01-01")を比較するには?

5. 日付の文字列(
5. 日付の文字列("2025-01-01")を比較するには?

ときどき「日付を文字列(もじれつ)」で持っていることがあります。たとえば「2025-01-01」というテキストです。このままでは比較できないので、datetime型に変換(へんかん)してから比較しましょう。


from datetime import datetime

date_str = "2025-01-01"
date_obj = datetime.strptime(date_str, "%Y-%m-%d")

today = datetime.today()

if today < date_obj:
    print("未来の日付です。")

strptimeというメソッドで、文字列をdatetime型に変換しています。

6. 日付の差を計算して、何日違うかを知る

6. 日付の差を計算して、何日違うかを知る
6. 日付の差を計算して、何日違うかを知る

比較するだけでなく、2つの日付の差(さ)を計算することもできます。たとえば、あと何日でイベントがあるかを知りたいときに便利です。


from datetime import datetime

today = datetime.today()
event_day = datetime(2025, 12, 31)

diff = event_day - today
print(diff.days, "日後にイベントがあります。")

このように、datetime同士を引き算すると、timedelta(たいむでるた)という型になり、その中のdaysを使うと「何日違うか」がわかります。

7. よくあるエラーと注意ポイント

7. よくあるエラーと注意ポイント
7. よくあるエラーと注意ポイント

初心者の方がつまずきやすいポイントも紹介しておきます。

  • 文字列のまま比較しないこと! → 「2025-01-01」などはdatetime型に変換してから比較しましょう。
  • 日付と時間の違いに注意!datetime型は「日付と時間のセット」です。日付だけ使いたい場合は、date()メソッドで切り出すと良いです。
  • 
    today = datetime.today().date()
    
  • 時差やタイムゾーンが関係する場合 → 世界中で使うシステムではtimezoneの設定も必要です。日本で使う分には気にしなくてOKです。

8. 練習問題:あなたの誕生日は未来?過去?

8. 練習問題:あなたの誕生日は未来?過去?
8. 練習問題:あなたの誕生日は未来?過去?

最後に、練習としてあなたの誕生日が未来か過去かを判断するプログラムを書いてみましょう。


from datetime import datetime

birth_str = input("あなたの誕生日を yyyy-mm-dd 形式で入力してください:")
birth_date = datetime.strptime(birth_str, "%Y-%m-%d")
today = datetime.today()

if birth_date > today:
    print("その日は未来ですね!")
elif birth_date < today:
    print("その日は過去ですね!")
else:
    print("お誕生日おめでとうございます!")

このように、日付を入力して自分で比較することで、プログラムの楽しさを体験できます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHPのマルチバイト文字列を正しく扱う方法!初心者向けにmb_strlenとmb_substrをやさしく解説
New2
PHP
PHP の break, continue の使い方を完全解説!初心者でもわかるループ制御
New3
Python
Pythonで日本の元号を扱う方法を徹底解説!令和・平成の変換もバッチリ対応
New4
Python
Pythonの三項演算子とは?一行で条件分岐を記述する方法
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで辞書のキー・値・アイテムを取得する方法(keys(), values())
No.2
Java&Spring記事人気No2
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonのライブラリとは?標準ライブラリとサードパーティライブラリの違いを初心者向けに解説!
No.5
Java&Spring記事人気No5
Python
PythonでMySQLに接続する方法を完全解説!初心者でもわかるpymysqlの基本
No.6
Java&Spring記事人気No6
PHP
PHPで画像ファイルをアップロードする方法を初心者向けに徹底解説!わかりやすい画像処理入門
No.7
Java&Spring記事人気No7
PHP
PHP の基本構文(開始タグ・コメント・インデント)を完全ガイド!初心者向け解説
No.8
Java&Spring記事人気No8
PHP
PHP のデータ型を完全ガイド!初心者でもわかる int, string, float, bool など
-
-