Django有时会从PostgreSQL以本机形式获取日期时间,即使USE_TZ = True

时间:2014-09-01 08:17:33

标签: django postgresql datetime timezone django-registration

我正在使用Django 1.4和PostgreSQL。

在settings.py中我有:

USE_TZ = True

创建日期总是会产生偏移感知的时区:

>>> from django.utils import timezone
>>> timezone.now()
datetime.datetime(2014, 9, 1, 7, 48, 12, 636318, tzinfo=<UTC>)

我自己的应用中的模型返回时区感知日期。

>>> from fundedbyme.campaign.models import *
>>> e = EquityCampaign.objects.all()[0].created
datetime.datetime(2013, 9, 19, 11, 29, 57, 844642, tzinfo=<UTC>)

从其他一些第三方应用中,我会返回偏移感知日期。

>>> from paypaladaptive.models import Payment
>>> Payment.objects.all()[0].created_date
datetime.datetime(2013, 5, 14, 11, 58, 47, 713878, tzinfo=<UTC>)

但是,用户模型没有时区感知日期。

>>> u = User.objects.all()[0]
>>> u.date_joined
datetime.datetime(2014, 5, 13, 16, 20, 37, 709550)

为什么只有django用户模型不会返回偏移感知日期时间?当我使用django-registration时,这会给我带来严重的错误。在链接到下面的行中,将比较本机和感知日期。

https://bitbucket.org/ubernostrum/django-registration/src/8f242e35ef7c004e035e54b4bb093c32bf77c29f/registration/models.py?at=default#cl-218

我查看了postgres中的auth_user表,而date_joined字段是“带时区的时间戳”字段。

为什么我只能在用户模型上返回原生日期?

0 个答案:

没有答案