Django和Python中的Timezone处理

总的原理
进入到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>)

猜你喜欢

转载自www.cnblogs.com/sunxiuwen/p/9960523.html