关于django的时区设置

简介:

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

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

 

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

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

  2. 在函数之间传递时间参数时,确保时间已经转换成 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 所在时区的时间渲染。


一般设置为:

 TIME_ZONE = 'Asia/Shanghai'

 USE_TZ = False                       本文转自 AltBoy 51CTO博客,原文链接:http://blog.51cto.com/altboy/1956832


相关文章
|
6月前
|
前端开发 数据库 Python
Django项目之电商购物商城 -- 修改/删除收货地址/设置默认地址
Django项目之电商购物商城 -- 修改/删除收货地址/设置默认地址
|
6月前
|
Python
初识Django,以及路由设置
初识Django,以及路由设置
|
Linux Python Windows
django的settings中设置中文支持
django的settings中设置中文支持
|
前端开发 JavaScript Python
Python项目:Django 设置应用程序的样式并进行部署
Python项目:Django 设置应用程序的样式并进行部署
159 0
Python项目:Django 设置应用程序的样式并进行部署
|
Python
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)2
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)
104 0
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)2
|
数据库 Python
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)
178 0
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)
|
API 网络架构 Python
Django API 开发:视图设置和路由(下)
在本章中,我们将向现有项目中添加两个新的 API 端点,并了解如何从视图和 URL 切换到视图集和路由器可以用更少的代码实现相同的功能。
|
API 数据库 网络架构
Django API 开发:视图设置和路由(上)
在本章中,我们将向现有项目中添加两个新的 API 端点,并了解如何从视图和 URL 切换到视图集和路由器可以用更少的代码实现相同的功能。
Django API 开发:视图设置和路由(上)
|
Python
Django的时区设置
Django的时区设置
139 0
|
前端开发 JavaScript Python
Django入门:第十章、静态文件设置
Django入门:第十章、静态文件设置
228 0
Django入门:第十章、静态文件设置