pis*_*ros 7 python mysql django datetime
我有一个带有日期时间字段的Django模型.保存时,存储在我的数据库中的日期时间字段会丢失时区信息,因此会将其保存为天真的日期时间.一般来说,这不是问题,因为Django在模板中呈现datetime字段时会自动将其转换回来.
但是这个观点呢?假设我需要日期时间服务器端的字符串表示.根据夏季/冬季时间,我的时区可能是GTM + 1或GMT + 2,这使事情变得更加困难.
那么如何在视图中应用本地tz转换?我用pytz尝试了几种方法.没有成功,ome条目转换为GMT + 1,其他条目转换为GMT + 2 :(
例如.
system_tz = pytz.timezone('Europe/Berlin')
local_dt = item.created_at.astimezone(system_tz)
local_dt = system_tz.normalize(local_dt)
Run Code Online (Sandbox Code Playgroud)
附加信息:
from django.utils import timezone
local_dt = timezone.localtime(item.created_at, pytz.timezone('Europe/Berlin'))
Run Code Online (Sandbox Code Playgroud)
要转换为UTC + 1:
from django.utils import timezone
local_dt = timezone.localtime(item.created_at, timezone.get_fixed_timezone(60)
Run Code Online (Sandbox Code Playgroud)
无需用于django.utils在时区之间进行转换:
berlin = pytz.timezone('Europe/Berlin')
local_dt = item.created_at.astimezone(berlin)
Run Code Online (Sandbox Code Playgroud)
但是,如果您通常只使用一个时区,那么将其存储在其中settings.TIME_ZONE = 'Europe/Berlin',然后
local_dt = timezone.localtime(item.created_at)
Run Code Online (Sandbox Code Playgroud)
将其转换为您的本地时间。
| 归档时间: |
|
| 查看次数: |
7912 次 |
| 最近记录: |