我有一个 Django 模型datetime场地。保存时,日期时间字段存储在我的DB丢失时区信息,因此将其另存为naive约会时间。一般来说,这不是问题,因为 Django 在模板中渲染日期时间字段时会自动将其转换回来。
但景色又如何呢?假设我需要日期时间服务器端的字符串表示形式。根据夏季/冬季时间,我的时区可能是 GTM+1 或 GMT+2,这使得事情变得更加困难。
那么我该如何应用视图中的本地 tz 转换?我用 pytz 尝试了几种方法。没有成功,一些条目转换为 GMT+1,其他条目转换为 GMT+2 :(
Eg.
system_tz = pytz.timezone('Europe/Berlin')
local_dt = item.created_at.astimezone(system_tz)
local_dt = system_tz.normalize(local_dt)
附加信息:
- 姜戈 1.8.7。
- 设置.USE_TZ = True
- MySQL
- 我为什么要这样做?因为我有一个表,它通过 AJAX 按需加载其所有行。我需要在将日期时间值发送给客户端之前使用 strftime() 准备它们。
从这个开始:
from django.utils import timezone
local_dt = timezone.localtime(item.created_at, pytz.timezone('Europe/Berlin'))
要转换为 UTC+1:
from django.utils import timezone
local_dt = timezone.localtime(item.created_at, timezone.get_fixed_timezone(60))
- 如何获取当前时区的当地时间(第二个问题) https://docs.djangoproject.com/en/stable/topics/i18n/timezones/#usage
- 当地时间() https://docs.djangoproject.com/en/stable/ref/utils/#django.utils.timezone.localtime
- 获取固定时区() https://docs.djangoproject.com/en/stable/ref/utils/#django.utils.timezone.get_fixed_timezone
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)