首页 > 解决方案 > Django orm 返回时区 0,而我想要时区规范

问题描述

我从不使用时区转变为使用时区,但我有几个关于处理它的问题。首先,我的设置如下所示:

TIME_ZONE = "Europe/Amsterdam"
USE_TZ = True

我现在从数据库中获取正确的时区,但不在正确的时区。我怀疑当我TIME_ZONE在欧洲/阿姆斯特丹时,我会回到那个时区。但相反,我得到:

2020-09-27 23:00:07+00:00

但我想收到的是:

2020-09-27 22:00:00+02:00

我可以通过使用来做到这一点

timezone.localtime(date_object)

但是有没有办法直接从 orm 中以正确的格式恢复时区?

我正在使用 Postgres 11 和 Django 3.0.1

标签: djangopostgresqltimezone

解决方案


但是有没有办法直接从 orm 中以正确的格式恢复时区?

不,Django 总是datetime以 UTC 格式提供对象;看到这个答案。Django 指的是TIME_ZONE在渲染模板或解析表单时,但在此之前,除非另有明确转换,否则一切都在 UTC 中。


推荐阅读