Django模型层的DateTimeField、DateField字段设置时间格式为显示当前年月日时分秒的时间格式及时区

1、

https://www.cnblogs.com/guanxiying/p/13252167.html

创建django的model时,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date()、time()三中对象。这三个field有着相同的参数auto_now和auto_now_add,表面上看起来很easy,但实际使用中很容易出错,下面是一些注意点。

models.py文件添加创建时间和更新时间

createtime=models.DateTimeField(auto_now_add=True,null=True,blank=True)
updatetime=models.DateTimeField(auto_now=True,null=True,blank=True)

 2、修改时区问题

https://www.jianshu.com/p/8b581f13433a

setting.py文件修改时区为上海时区
datetime.datetime.now()获取的时间django会把这个时间当成UTC时间存储到数据库中去。如果修改设置为USE_TZ=True与TIME_ZONE = 'Asia/Shanghai',用datetime.datetime.now()获取的时间由于不带时区,django会把这个时间当成Asia/Shanghai时间,即东八区时间,然后django会把这个时间转成带时区UTC时间存储到数据库中去,而读的时候直接按UTC时间读出来,这就是网上很多人遇到的存储到数据库中的时间比本地时间会小8个小时的原因。