总的原理
进入到django数据库中的时间一定是timezone aware的时间,如果要生成时间,要通过replace timezone设置为本地时区。
数据库中的时间都是utc时间
Django中的timezone
from django.utils import timezone
t=timezone.now()
print(t)
datetime.datetime(2016, 1, 4, 2, 13, 54, 582231, tzinfo=<UTC>)
new_t=timezone.localtime(t)
print(new_t)
datetime.datetime(2016, 1, 4, 10, 13, 54, 582231, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)
Python中的datetime
import datetime
t = datetime.datetime.strptime("2016-1-4", "%Y-%m-%d")
print(t)
datetime.datetime(2016, 1, 4, 0, 0)
new_t = t.replace(tzinfo=(pytz.timezone('Asia/Shanghai')))
print(new_t)
datetime.datetime(2016, 1, 4, 0, 0, tzinfo=<DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>)