最近在项目中遇到一个问题:数据库中存放的时间为UTC时间,但是现在要求都出来显示的时间为本地时间,由于自己之前很少接触Python,对Python中的datetime操作很不熟悉,在网上查阅了相关资料后终于成功解决了这个问题,方法如下:
from dateutil import tz
from datetime import datetime
# UTC Zone
from_zone = tz.gettz('UTC')
# China Zone
to_zone = tz.gettz('CST')
utc = datetime.utcnow()
# Tell the datetime object that it's in UTC time zone
utc = utc.replace(tzinfo=from_zone)
# Convert time zone
local = utc.astimezone(to_zone)
print datetime.strftime(local, "%Y-%m-%d %H:%M:%S")
对于如何获得当地时区的代码,可以参考下面的代码:
from datetime import *
from dateutil.tz import *
print datetime.now(tzlocal()).tzname()
OVER!