博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django 和时区设置的问题
阅读量:4053 次
发布时间:2019-05-25

本文共 813 字,大约阅读时间需要 2 分钟。

Django 和时区设置的问题

written on Wednesday, August 19, 2009

Django 1.1 及其之前的版本, 时区处理这一块算是比较混乱的了:

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

相关的 Bug 报告:

相关研究:

规避

大部分情况下, 都不太需要更改本地时区, Django 当初设计的时可能也是这么考虑的.

但是, 使用本地时间存数据库显然是缺乏灵活性的. 尤其是美国, 采用多个时区不说, 根据夏令/冬令时段还会调整时间.

Bug 表明 Django 正在努力改进时区处理. 但在 Django 完成改进之前, 新开发的 app, 在不考虑多用户的情况下, 最好是: 把 UTC 时间存入数据库, 前台 view 或 template 再根据设置的显示时区呈现, 尽可能使用 .

参考:

多用户的情况

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

This entry was tagged and

转载地址:http://fuxci.baihongyu.com/

你可能感兴趣的文章
linux安装usb wifi接收器
查看>>
多线程使用随机函数需要注意的一点
查看>>
getpeername,getsockname
查看>>
关于对象赋值及返回临时对象过程中的构造与析构
查看>>
VS 2005 CRT函数的安全性增强版本
查看>>
Visual Studio 2010:C++0x新特性
查看>>
drwtsn32.exe和adplus.vbs进行dump文件抓取
查看>>
cppcheck c++静态代码检查
查看>>
在C++中使用Lua
查看>>
一些socket的编程经验
查看>>
socket编程中select的使用
查看>>
可以在线C++编译的工具站点
查看>>
关于无人驾驶的过去、现在以及未来,看这篇文章就够了!
查看>>
所谓的进步和提升,就是完成认知升级
查看>>
为什么读了很多书,却学不到什么东西?
查看>>
长文干货:如何轻松应对工作中最棘手的13种场景?
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>
No.174 - LeetCode1305 - 合并两个搜索树
查看>>
No.175 - LeetCode1306
查看>>
No.176 - LeetCode1309
查看>>