Django和Python中的Timezone处理

总的原理

  • 进入到django数据库中的时间一定是timezone aware的时间,如果要生成时间,要通过replace timezone设置为本地时区。
  • 数据库中的时间都是utc时间

Django中的timezone

from django.utils import timezone
>>> t=timezone.now()
>>> t
datetime.datetime(2016, 1, 4, 2, 13, 54, 582231, tzinfo=<UTC>)
>>>new_t=timezone.localtime(t)
>>>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")
>>>t
datetime.datetime(2016, 1, 4, 0, 0)
>>>new_t = t.replace(tzinfo=(pytz.timezone('Asia/Shanghai')))
>>>new_t
datetime.datetime(2016, 1, 4, 0, 0, tzinfo=<DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>)
    原文作者:三千万星辰
    原文地址: https://www.jianshu.com/p/b38e05787dca
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞