设为首页 收藏本站
查看: 1077|回复: 0

[经验分享] Django 和时区设置的问题

[复制链接]

尚未签到

发表于 2016-11-22 08:17:49 | 显示全部楼层 |阅读模式
  Django 和时区设置的问题 | Life @ Refactoring
Django 和时区设置的问题
written on Wednesday, August 19, 2009
  Django 1.1 及其之前的版本, 时区处理这一块算是比较混乱的了:

  • 依赖数据库管理系统本身 (Django 针对 PostgreSQL 做了特殊处理)
  • 跨平台能力弱 (Python 标准库的 TZ 环境变量依赖 *nix 操作系统)
  • Windows 下, settings.TIME_ZONE 的值直接被忽略, Django 将使用系统默认本地时间
  • settings.TIME_ZONE 推荐的值本身缺乏可移植性, 至少在 Webfaction 提供的 Linux 主机中, 无法识别推荐的 'Asia/Shanghai PRC' 时区, 设置为 'Asia/Shanghai' 则正常
  • 没有提供一个统一的时区 API 和相关 Filter, 导致不同 app 在时区处理处于各自为政的状态, 有的是将 UTC 时间存入数据库, 有的则把本地时间存入数据库
  • 单一的时区设置 -- 多用户模式下, 不支持用户自定义时区
  相关的 Bug 报告:

  • Timezone bug in development server using a Windows environment
  • Datetime handling is broken when dealing with more than one time zone
  相关研究:

  • Fun with timezones in Django & MySQL
  • TIME_ZONE setting: How does it work?

规避
  大部分情况下, 都不太需要更改本地时区, Django 当初设计的时可能也是这么考虑的.
  但是, 使用本地时间存数据库显然是缺乏灵活性的. 尤其是美国, 采用多个时区不说, 根据夏令/冬令时段还会调整时间.
  Bug #2626 表明 Django 正在努力改进时区处理. 但在 Django 完成改进之前, 新开发的 app, 在不考虑多用户的情况下, 最好是: 把 UTC 时间存入数据库, 前台 view 或 template 再根据设置的显示时区呈现, 尽可能使用 pytz.
  参考: Google App Engine 中通过自定义Django的filter解决时区问题

多用户的情况
  如果应用是国际化的, 用户地域分布广, 目前 Django 的时区处理功能还无法满足, 需要借助第三方 app : django-timezones

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-303713-1-1.html 上篇帖子: Java和C++在细节上的差异(目录) 下篇帖子: Instagram的技术探索
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表