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