我有一个Django模型与datetime字段。保存时,存储在我的DB中的日期时间字段会丢失时区信息,因此它将保存为日期时间的幼稚。一般来说,这不是一个问题,因为在模板中呈现日期时间字段时,Django会自动将其转换回来。Django日期时间字段 - 转换为时区在视图
但是视图呢?假设我需要日期时间服务器端的字符串表示。根据夏季/冬季时间的不同,我的时区可能是GTM + 1或GMT + 2,这会让事情变得更加困难。
那么我该如何申请本地tz转换在视图?我用pytz尝试了几种方法。没有成功,青梅条目转换为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)
附加信息:
- 的Django 1.8.7
- 设置。 .USE_TZ = True
- MySQL
- 为什么我这样做?因为我有一张表,它通过AJAX按需加载其所有行。我需要在将它们发送给客户端之前使用strftime()准备日期时间值。
同样的结果。一些条目转换为GMT + 1,其他条目转换为GMT + 2。也许是因为我的时区是夏令时,但现在都应该是GMT + 1。 – pisapapiros
pisapapiros 2016-03-20(时间变更前)是UTC + 1,2016-03-30(时间变更后)是UTC + 2 http://www.timeanddate.com/time/zone/germany/berlin。 – vsd
哦,就是这样!我尝试了太多的东西,终于搞砸了我的想法,但输出结果是正确的!感谢弗拉基米尔帮助解决问题 – pisapapiros