django中如何把时间改为中国时间
在setting.py中,修改如下三个参数:LANGUAGE_CODE = 'zh-hans'TIME_ZONE = 'Asia/Shanghai'USE_TZ = False即可完成,在使用 DateTimeField 来创建时间时,配置了上边三个参数,保存在数据库的时间就是中国时间。以下是没有设置上边三个参数和配置的三个参数的区别:默认是英国格林威治UTC时间,比国时晚了8小时!...
·
方法一:
在setting.py中,修改如下三个参数:
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False
即可完成,在使用 DateTimeField 来创建时间时,配置了上边三个参数,保存在数据库的时间就是中国时间。
以下是没有设置上边三个参数和配置的三个参数的区别:
默认是英国格林威治UTC时间,比国时晚了8小时!
方法二:
如果在数据库中你已经存了UTC的时间,在前台显示时,需要转化成国时(也就是本地时间),可以用 localtime 方法:
localtime : 会根据settings.py中的 TIME_ZONE 将一个aware类型 的时间转化为TIME_ZONE指定时区的时间。
from django.utils.timezone import localtime # 导出localtime方法
from django.shortcuts import render # 导出render方法
from apps.text_three.models import Text as Person_model #引入模型类
def index(res):
create_time = Person_model.objects.get(pk=5)
print("数据库取出来的时间为:{}".format(create_time.create_time))
print("转化为当地时间为:{}".format(localtime(create_time.create_time)))
return render(res, 'test_html.html')
补充:
通常情况下,正规配置是在settings.py中设置USE_TZ= True,这样存到数据中的是一个UTC时间,当你的网站或系统国际化时,尤为重要,如果网站在中国发布,那么返给前台的时间可以使用上边localtime方法处理之后,返给前端。
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = True
更多推荐
所有评论(0)