卡在Django的某个点上。
我已经在我的PostgreSQL数据库中存储了一个值
TIME_ZONE = 'Asia/Kolkata'
格式,但是当我从 Django 获取相同的内容时,它会被转换为 UTC。
例:
我的表中有一个时间轴字段,存储值为 2015-05-02 05:29:59+05:30
当我从 django shell 获取它时,它会给出datetime.datetime(2015, 5, 1, 23, 59, 59, tzinfo=UTC)
请协助。我需要在 Django 中更改任何设置吗?我目前的设置是:
TIME_ZONE = 'Asia/Kolkata'
USE_I18N = True
USE_L10N = True
USE_TZ = True
除此之外,tzlocal给出了期望的时区值
>>> from tzlocal import get_localzone
>>> get_localzone()
<DstTzInfo 'Asia/Kolkata' LMT+5:53:00 STD>
根据文档:
启用时区支持后,Django 将 UTC 格式的日期时间信息存储在数据库中,在内部使用时区感知日期时间对象,并在模板和表单中将它们转换为最终用户的时区。
因此,您似乎只会在模板中获得正确的时区,而不是在shell中。
但是,要以您的格式查看日期,假设字段的名称是date_created,您可以这样做
from django.utils import timezone
print str(timezone.localtime(obj.date_created))
或者您可以在使用情况文档中尝试这些方法