【BUG】【Python】【Django】TypeError: can‘t compare offset-naive and offset-aware datetimes
·
BUG
TypeError: can’t compare offset-naive and offset-aware datetimes


DEBUG
offset-naive是不含时区的类型,而offset-aware是有时区类型,两者不能比较。
datetime.datetime.now() 以及 datetime.datetime.now() + datetime.timedelta(minutes=10) 的结果都是 offset-naive 类型:
而Django中模型DateTimeField类会默认转成offset-aware型的UTC时间:


所以会报错 TypeError: can’t compare offset-naive and offset-aware datetimes.
故解决方案有以下几种:
- setting.py中的USE_TZ设为False即可。
- 两种类型转换:
- offset-naive类型转为offset-aware类型

- offset-aware类型转为offset-naive类型

- offset-naive类型转为offset-aware类型
PS:datetime.datetime.utcnow() 并不能生成offset-aware类型的UTC时间,故不能解决此问题:
更多推荐


所有评论(0)