業務でプログラムを書いている際に「can’t compare offset-naive and offset-aware datetimes」というエラーが発生しました
from datetime import datetime import pytz # タイムゾーン情報を持つ日時を作成 aware_dt = datetime(2023, 1, 1, tzinfo=pytz.UTC) # タイムゾーン情報のない日時を作成 naive_dt = datetime(2023, 1, 1) # タイムゾーン情報を持つ日時と比較 if aware_dt > naive_dt: print("aware_dt is greater")
②タイムゾーン情報のない日時をタイムゾーン情報を持つ日時に変換する:
タイムゾーン情報のない日時を、タイムゾーン情報を持つ日時に変換してから比較を行うこともできます。これには、pytz
モジュールを使用して変換します。
from datetime import datetime import pytz # タイムゾーン情報を持つ日時を作成 aware_dt = datetime(2023, 1, 1, tzinfo=pytz.UTC) # タイムゾーン情報のない日時を作成 naive_dt = datetime(2023, 1, 1) # タイムゾーン情報のない日時をタイムゾーン情報を持つ日時に変換 naive_dt_with_tz = pytz.UTC.localize(naive_dt) # タイムゾーン情報を持つ日時と比較 if aware_dt > naive_dt_with_tz: print("aware_dt is greater")
コメント