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では日付オブジェクト同士の比較が直感的に行えるため、期限チェックや期間判定などの処理も簡単に実装できます。
-
【Python入門】strptimeを使って日付文字列をdateオブジェクトに変換する方法
Pythonでは、datetimeモジュールのstrptime関数を使うことで、文字列形式の日付データを簡単にdatetimeオブジェクトへ変換できます。この関数には、変換したい日付の文字列と、その日付がどのような書式で記述されているかを示すフォーマット指定子の2つの引数を渡します。基本的な使い方(サンプルコード)以下の例では、「2017年12月29日」という日付が「29122017」という文字列として表現されている場合に、それを日付オブジェクトへ変換しています。import datetime date_str = 29122017 # 日付文字列(2017年12月29日) format
-
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