【发布时间】:2019-07-13 12:11:36
【问题描述】:
我有以下设置:-
TIME_ZONE = 'Asia/Kolkata'
USE_I18N = True
USE_L10N = True
USE_TZ = True
另外,我在我的DateTimeField 中设置了auto_now = True。但是,保存在 UTC 列中的日期时间(即 -5:30 小时)。
我已根据Asia/Kolkata 时区设置我的系统日期。还有,
>>> from django.utils import timezone
>>> from datetime import datetime
>>>
>>> datetime.now()
datetime.datetime(2019, 7, 13, 17, 40, 1, 505516) # this is right
>>> timezone.now()
datetime.datetime(2019, 7, 13, 12, 10, 6, 496772, tzinfo=<UTC>) # this is not what I expect.
即使TIME_ZONE 设置正确,为什么timezone.now() 还是有差异??
【问题讨论】:
-
official documentation 中的第一句:“启用时区支持后,Django 将日期时间信息以 UTC 格式存储在数据库中,在内部使用时区感知的日期时间对象,并对其进行翻译到模板和表单中的最终用户的时区。”
-
我应该将
USE_TZ设置为False吗? -
如果您没有任何用户的位置与您的服务器位于不同的时区,那么可以 - 或者直接删除该行,因为它默认为 False。
标签: python django django-timezone