Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで日付を比較する方法をわかりやすく解説

Pythonのdateオブジェクトは、すべての比較演算子をサポートしています。そのため、datetimeモジュールを使って日付オブジェクトを作成・操作している場合は、<><=>=== などの演算子をそのまま使用できます。これにより、入力値のバリデーションなどで日付を比較・チェックする処理が非常にシンプルに書けます。

基本的な比較の例

from datetime import datetime
from datetime import timedelta

today = datetime.today()
yesterday = today - timedelta(days=1)

print(today < yesterday)
print(today > yesterday)
print(today == yesterday)

実行結果

このコードを実行すると、次のような出力が得られます。

False
True
False

文字列としての日付を比較する場合

日付が文字列形式で与えられている場合は、そのまま比較せず、まずstrptime()メソッドを使ってdatetimeオブジェクトに変換しましょう。変換後であれば、同じように比較演算子で正確な判定が可能です。

from datetime import datetime

date_str1 = "2024-01-15"
date_str2 = "2024-03-20"

d1 = datetime.strptime(date_str1, "%Y-%m-%d")
d2 = datetime.strptime(date_str2, "%Y-%m-%d")

print(d1 < d2)   # True
print(d1 > d2)   # False

このように、Pythonでは日付オブジェクト同士の比較が直感的に行えるため、期限チェックや期間判定などの処理も簡単に実装できます。

  1. 【Python入門】strptimeを使って日付文字列をdateオブジェクトに変換する方法

    Pythonでは、datetimeモジュールのstrptime関数を使うことで、文字列形式の日付データを簡単にdatetimeオブジェクトへ変換できます。この関数には、変換したい日付の文字列と、その日付がどのような書式で記述されているかを示すフォーマット指定子の2つの引数を渡します。基本的な使い方(サンプルコード)以下の例では、「2017年12月29日」という日付が「29122017」という文字列として表現されている場合に、それを日付オブジェクトへ変換しています。import datetime date_str = 29122017 # 日付文字列(2017年12月29日) format

  2. Pythonで文字列から日付を抽出・解析する方法

    文字列から日付を抽出するには、まずその文字列内で日付がどのような形式(フォーマット)で表現されているかを把握しておく必要があります。基本的なアプローチとしては、正規表現(reモジュール)で日付部分を取り出し、datetime.datetime.strptime() で解析(パース)するという流れになります。例えば、文字列中に「YYYY-MM-DD」形式の日付が含まれている場合、以下のコードで抽出と解析ができます。コード例import re import datetime s = I have a meeting on 2018-12-10 in New York match = re.sea