【django】TypeError: can’t subtract offset-naive and offset-aware datetimesを直す

Djangoで

TypeError: can't subtract offset-naive and offset-aware datetimes

というエラーが出たので、解決しました。

Djangoではない場合の解決方法に下に書きました。

offset-naive, offset-awareとは

naiveとは、TimeZone知らずの日付
awareとは、TimeZoneがわかっている日付

ということです。

Djangoで出た場合の解決方法

Djangoで出た場合は、おそらく片方は

datetime.datetime.now()

datetime.dateitme(2023,11,15)

とかで、timezoneがないデータを使用していると思います。

そんな場合は、djangoがutilを用意してくれているので、
それを使います。

from django.utils import timezone

timezone.now()

timezone.make_aware(datetime.dateitme(2023,11,15))

そうするとsettings.pyの

TIME_ZONE = 'Asia/Tokyo'

が反映されます。

Djangoではない場合にawareな日付にする

import pytz

tz = pytz.timezone('Asia/Tokyo')
datetime_aware = tz.localize(datetime.dateitme(2023,11,15))

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です