项目一开始的 TIME_ZONE 需要修改
TIME_ZONE = ‘Asia/Shanghai’
这样基本不会遇到时间问题
如果不幸接手运行很久的项目使用的是 UTC
涉及时区不同,使用 pytz 库会方便很多
datetime 的 replace 方法只改变当前时区
astimezone 会把时间改变成参数中时区的时间
django 数据库存储的是 带UTC时区的时间
print obj.dt_update2019-06-28 00:45:00+00:00
赋值当前时间可以用 同样是 UTC时间的
from django.utils import timezoneprint timezone.now()2019-06-28 01:46:19.902540+00:00
带有 UTC时区的 时间 转本地时间
from pytz import timezonetzchina = timezone('Asia/Shanghai')utc = timezone('UTC')print utc_time.replace(tzinfo=utc).astimezone(tzchina)2019-07-28 09:46:19.902546+08:00
不带时区的本地时间
from datetime import datetimeprint datetime.now()2019-07-28 09:46:19.902529
