Django ORM存储datetime 时间误差8小时问题

今天使用django ORM 将获取到的时间入库,并未出现问题,但是后来发现时间晚了8小时,经查询Django官方文档发现获取本地时间和UTC时间有差别。

首先科普下:
UTC是协调世界时 UTC相当于本初子午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(GMT)来表示.北京时间比UTC时间早8小时,以1999年1月1日0000UTC为例,UTC时间是零点,北京时间为1999年1月1日早上8点整

错误如图:

解决如下:

第一种:修改settings中的配置项

找到settings中的USE_TZ= True,把True改成False即可

第二种:在函数直接传递时间参数时,确保时间已经转换成UTC时间

import datetime
from django.utils.timezone import utc
now = datetime.datetime.utcnow().replace(tzinfo=utc)

猜你喜欢

转载自www.cnblogs.com/xcsg/p/10708581.html