美文网首页
django datetime 时区转换

django datetime 时区转换

作者: leyu | 来源:发表于2016-12-25 10:55 被阅读0次

django保存在mysql数据库的时间段是以utc时间来保存的,导致会与实际时间差8小时。读出来的时间你会发现有个tzinfo=<UTC>参数。

>>> t=Trouble.objects.all()[0]
>>> t.starttime
datetime.datetime(2016, 12, 5, 1, 5, 48, tzinfo=<UTC>)

这时就需要转换为中国的时区了。需要用到pytz库,比较简单

>>> import pytz
>>> t.starttime.astimezone(pytz.timezone('Asia/Shanghai'))
datetime.datetime(2016, 12, 5, 9, 5, 48, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)

因为用不到时区这个概念,最好的方法是避免以UTC时区保存。这个以后有时间研究,应该是settings配置的问题。
参考:
http://agile-boy.iteye.com/blog/719047
http://www.360doc.com/content/15/0512/20/10072361_470016889.shtml

相关文章

网友评论

      本文标题:django datetime 时区转换

      本文链接:https://www.haomeiwen.com/subject/emwrvttx.html