Django 时区

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

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

datetime.datetime.now() 输出永远都是本地时间,与配置没有任何关系。


开启USE_TZ = True    TIME_ZONE  无论什么设置,插入数据库是东八区时间,数据库在项目原先时间基础上会加8小时
设置USE_TZ = False 和 TIME_ZONE = 'UTC'与USE_TZ = True等效。
查询时,django会拿时间+8去数据库查,返回数据库中减8的数据

当USE_TZ = False ,TIME_ZONE = 'Asia/Shanghai'时,会插入当前时间,也就是项目中datetime.datetime.now()
查询时,传入的什么时间值,查询的与数据库对应,返回的也是东八区时间 

猜你喜欢

转载自www.cnblogs.com/weidaijie/p/12753854.html