Dja*_*ner 5 python django timezone datetime pytz
我正在研究基于Django的网站.我正在尝试获得正确的时区和时间来显示.但它不能正常工作.我住在德克萨斯州达拉斯市.所以我的默认时区是'America/Chicago'.
我的settings.py文件包含以下代码行.
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
Run Code Online (Sandbox Code Playgroud)
我有日期时间,并安装了pytz.所以,当我试图在数据库中节省时间时,我的代码是,
from datetime import datetime
import pytz
utc = pytz.utc
database = Database.objects.get(id=1)
databas.time = utc.localize(datetime.now())
database.save()
Run Code Online (Sandbox Code Playgroud)
所以当我检查数据库时,更新的时间是 2015-10-20 23:13:04
代替 2015-10-20 18:13:04
当我通过下面的代码在模板中打印出来时,我得到了这个输出 Oct. 20, 2015, 1:13 p.m.
{{ database.time|localtime }}
Run Code Online (Sandbox Code Playgroud)
我很困惑如何使用datetime,pytz和all来获得准确的时间以及settings.py文件.
我想要做的是我想节省UTC时间.但是当我打印出来时,我希望根据用户获得访客的时区和打印时间.我的网站目前只能在美国访问.我的模特有
time = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
它节省了一些不同的时间.我有另一个模型,我有一个名为expire time的列,我使用以下代码保存,
expire_time = utc.localize(datetime.now()+ timedelta(hours=24))
Run Code Online (Sandbox Code Playgroud)
意味着我想在24小时后过期链接.但这个时区令我困惑.谁能帮我?我不知道在代码中应该使用什么来获得适当的时区.
如果您将USE_TZ = TrueDjango存储日期时间设置为UTC.使用以下命令创建时区datetime.now:
from django.utils import timezone
from datetime import timedelta
database.time = timezone.now()
expire_time = timezone.now() + timedelta(hours=24)
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用activate()将当前时区设置为最终用户的实际时区.查看"选择当前时区"以查看用户如何选择其时区以及如何使用此选项激活其时区的示例.
| 归档时间: |
|
| 查看次数: |
3374 次 |
| 最近记录: |