在settings.py中设置了

TIME_ZONE = 'Asia/Shanghai'

USE_TZ = True

现在的北京时间是 22点35分。django shell 中运行 timezone.now() 结果如下

>>> from django.utils import timezone

>>> timezone.get_current_timezone_name()

'Asia/Shanghai'

>>> timezone.now()

datetime.datetime(2018, 6, 11, 14, 35, 22, 946256, tzinfo=)

显示的时间不是我现在的 22:35 而是 14:35。timezone 是 UTC,而不是我设置的 'Asia/Shanghai'

为什么是这个结果?

Django 如果开启了 Time Zone 功能,则所有的存储和内部处理,甚至包括直接 print 显示全都是 UTC 的。只有通过模板进行表单输入/渲染输出的时候,才会执行 UTC 本地时间的转换。

建议后台处理时间的时候,最好完全使用 UTC,不要考虑本地时间的存在。而显示时间的时候,也避免手动转换,尽量使用 Django 模板系统代劳

启用 USE_TZ = True 后,处理时间方面,有两条 “黄金法则”

保证存储到数据库中的是 UTC 时间;

在函数之间传递时间参数时,确保时间已经转换成 UTC 时间;

比如,通常获取当前时间用的是

import datetime

now = datetime.datetime.now()

启用 USE_TZ = True 后,需要写成

import datetime

from django.utils.timezone import utc

utcnow = datetime.datetime.utcnow().replace(tzinfo=utc)

至于模板,除非应用支持用户设置自己所在的时区,通常我们不需要关心模板的时区问题。模板在展示时间的时候,会使用 settings.TIME_ZONE 中的设置自动把 UTC 时间转成 settings.TIME_ZONE 所在时区的时间渲染

参考

django mysql 时区_django 中的时区设置相关推荐

  1. php datetime 时区,datetime-php中的时区转换

    datetime-php中的时区转换 谁能建议一种简单的方法将日期和时间转换为php中的不同时区? 8个解决方案 108 votes 您可以为此使用datetime对象或其函数别名: 示例(摘自PHP ...

  2. mysql myisam key_buffer_size_MyISAM中key_buffer_size的设置_MySQL

    bitsCN.com MyISAM中key_buffer_size的设置 Key_read_requests和Key_reads就是两个计数器,它们的含义如下: Key_read_requests:从 ...

  3. django使用mysql事务处理_Django中MySQL事务的使用

    Django中事物的使用 from django.db import transaction @transaction.atomic 通过transaction的@transaction.atomic ...

  4. python django mysql安装_Django+Nginx+uWSGI+Mysql搭建Python Web服务器

    原标题:Django+Nginx+uWSGI+Mysql搭建Python Web服务器 安装的时候全部选择英文,记得以前选择中文的时候安装时出了问题,服务器组件一个不选,Ubuntu安装做的很贴心,基 ...

  5. django mysql 初始化_Django初始化基础(1)

    1,wed项目程序工作流程 2.Django生命周期 创建Django项目 root@dev:shiyanglou_project #wokon syl (syl) root@dev:shiyanlo ...

  6. django 后台日期_Django中的日期和时间格式 DateTimeField

    创建django的model时,有DateTimeField.DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime().date().time()三中对象 ...

  7. django mysql 名称_Django 自定义表名和字段名

    通过db_table和db_column自定义数据表名和字段名 假如你的数据库里已经有了一张数据表,且该表包含多个字段,你希望通过Django直接访问该数据表的各个字段而不是重新建立新表,你这时可以通 ...

  8. Django MySQL 多用户_Django 框架之 同时使用多个数据库

    知识点 不同app使用不同数据库 同一app使用不同数据库 简介 参考文档 不同app使用不同数据库 数据库路由 若无指定路由,则使用默认路由方案-default,确保数据的检索和保存使用defaul ...

  9. django mysql视图_Django框架使用mysql视图操作示例

    本文实例讲述了django框架使用mysql视图操作.分享给大家供大家参考,具体如下: 一.mysql视图的创建 mysql中,在两个或者以上的基本表上创建视图,例如:在studentorm表和inf ...

最新文章

  1. python的none是什么-Python中的None与Null(空字符)的区别
  2. Linux 随机启动 Mysql​
  3. kubernetes常用对象
  4. 可为空的对象必须具有一个值_前端:这里有8个常见的JavaScript经典问题,总有一个你不会的...
  5. 信奥中的数学:斯特林数、卡特兰数
  6. 大圆距离matlab代码,python – cartopy:大圆距离线的更高分辨率
  7. STM32F103_EXTI外部中断
  8. 线程安全使用相关注意事项
  9. 51NOD-1005 大数加法【大数】
  10. 安装mysql报curses的解决
  11. C#编写串口监控软件的详细教程
  12. r语言中残差与回归值的残差图_独家 | 手把手教你用R语言做回归后的残差分析(附代码)-阿里云开发者社区...
  13. H5+微信公众号扫二维码页面跳转功能 vue实现
  14. 史上最直白的RNN详解(结合torch的example)
  15. 换发型算法_GitHub - DylanMaeng/yry: yry(颜如玉)—— 一个实现人脸融合的算法,可以接近腾讯天天P图疯狂变脸功能的效果...
  16. PHP云软件短信接口,短信接口DEMO-PHP
  17. 常用建站参考网站大本营
  18. Python 库学习笔记—— BeautifulSoup 处理子标签、后代标签、兄弟标签和父标签
  19. Adversary Attack(对抗攻击)论文阅读笔记
  20. 神舟十五航天员邓清明:坐冷板凳25年 终实现飞天梦想

热门文章

  1. 屏幕后处理——Bloom
  2. The Minimum Cycle Mean in a Digraph 《有向图中的最小平均权值回路》 Karp
  3. Android:解决Gradle DSL method not found: 'runProguard()' 问题
  4. linux中awk下 gsub函数用法
  5. AS3.0中的显示编程(六)-- 几何结构
  6. 2021年中国工业互联网安全大赛核能行业赛道writeup之入门的黑客
  7. 分布式账本(Distributed ledger)
  8. 避免成为垃圾邮件_如何避免犯垃圾
  9. 非凡推崇_2015年值得推崇的25位编码者
  10. iptables防火墙策略