我正在使用基于Django的网站。我正在尝试获取正确的时区和时间来显示。但它不能正常工作。我住在得克萨斯州的达拉斯。所以我的默认时区是'美国/芝加哥'。Python-Django时区无法正常工作
我的settings.py文件包含这几行代码。
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
我有datetime和pytz安装。所以,当我试图节省时间在数据库中,我的代码,
from datetime import datetime
import pytz
utc = pytz.utc
database = Database.objects.get(id=1)
databas.time = utc.localize(datetime.now())
database.save()
所以当我检查到数据库,更新时间为2015-10-20 23:13:04
,而不是2015-10-20 18:13:04
,当我把它打印出来通过下面的代码模板,我得到这个输出Oct. 20, 2015, 1:13 p.m.
{{ database.time|localtime }}
我很困惑如何使用日期时间,pytz和随着settings.py文件获得准确的时间。
我想要做的是我想保存UTC时间。但是当我打印出来时,我想根据用户来获取访客的时区和打印时间。我的网站现在只能在美国访问。我的型号有
time = models.DateTimeField(auto_now_add=True)
它节省了一些不同的时间。我有另一种模式,我有一个名为到期这里我使用如下代码,以节省时间列,
expire_time = utc.localize(datetime.now()+ timedelta(hours=24))
意味着我要在24小时后过期的链接。但是这个时区让我感到困惑。谁能帮我?我不知道我的代码应该使用什么来获得适当的时区。
那么我的settings.py代码应该如何?他们是否正确?正如我所说的,'models.DateTimeField(auto_now_add = True)'不会节省UTC时间。我不知道为什么。 –
是的,你的设置看起来不错。您可以在创建新实例后发布“时间”字段的值吗? –
目前没有时间码。我不保存默认时间。我正在更新到期时间。 –