Django时区挣扎

我在自己的时区很难获得queryset结果。 例如: 模型字段定义:

some_datetime_field= models.DateTimeField(null=True)

查询:

MyModel.values_list("some_datetime_field",flat=True).first()

返回

datetime.datetime(2019,11,5,14,56,16,tzinfo=<UTC>)

而不是返回

datetime.datetime(2019,6,tzinfo=<DstTzInfo 'America/Los_Angeles' PST-1 day,16:00:00 STD>)

我正在使用python V3.7.5,Django V2.2.7和 PostgreSQL V12 作为数据库。 在我的设置中,我有:

TIME_ZONE = "America/Los_Angeles"
USE_TZ = True
USE_I18N = True
USE_L10N = True

从文档中可以看到有关“ TIME_ZONE”设置的信息:(https://docs.djangoproject.com/en/2.2/ref/settings/#time-zone)

  

当USE_TZ为True且数据库支持时区(例如PostgreSQL)时,设置此选项是错误的。

所以我尝试从设置中删除TIME_ZONE:

USE_TZ = True
USE_I18N = True
USE_L10N = True

但这还是没有用,更糟糕的是,当我尝试使用timezone.localtime(datetime_example)对其进行本地化时,我得到了芝加哥时间:

datetime.datetime(2019,8,tzinfo=<DstTzInfo 'America/Chicago' CST-1 day,18:00:00 STD>)

如何将查询设置为在所选时区而不是UTC返回DateTime?

hijbly 回答:Django时区挣扎

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3077851.html

大家都在问