大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
前言
我们都知道时区,标准时区是UTC时区
,django默认使用的就是UTC时区,所以我们存储在数据库中的时间是UTC的时间
,但是当我们做的网站只面向国内用户,或者只是提供内部平台使用,我们希望存储在数据库中的时间就是本地时间(东八区的时间),那么django也是可以完成这样的需求的
await时间和navie时间
什么是await时间和navie时间?它是我们python中的两种时间类型
- navie:不知道自己的时间表示哪个时区
- await:知道自己的时间表示的是哪个时区的
django设置东八区时间
我们想让django中的时区变为东八区的时间,很简单
USE_TZ = False
TIME_ZONE = 'Asia/Shanghai'
在settings.py
文件中将USE_TZ
设置为False,将TIME_ZONE
设置为亚洲上海,之后我们在模型中创建时间字段的时候,在数据库中存储的就是东八区的时间,而时间的类型会使navie类型
,所以我们就不能再把navie类型的时间转换成其他时区的类型,所以我们一般不建议这么做。
django设置UTC时区
django中默认设置的是UTC时区,所以我们数据库中存储时间就是UTC时区的时间,也就是0时区,比我们正常见到的少8个小时,但是它的时间是await类型,可以转成任意时间的时区。
django中提供了2个时间的方法
- django.utils.timezone.now:会根据
settings.py
文件中是否设置了USE_TZ=True
获取当前的时间。如果为Ture,那么就获取一个aware类型
的UTC时间,如果为False,那么就获取一个navie类型的时间 - django.utils.timezone.localtime:会根据
setting.py
中的TIME_ZONE
来将一个aware类型
的时间转换为TIME_ZONE
指定时区的时间
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/166171.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...