業務でプログラムを書いている際に「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")

コメント