django时间格式化加时区控制,避免展示错误


有个澳洲的项目,django自身的时间列表没问题,转换时间后出现了问题,转换方式如下

q.date=q.date.strftime("%d/%m/%Y")

有时候会错开一天,追加上时分秒后,得知时区问题,更新如下问题解决

import pytz 
q.date = q.date.astimezone(pytz.timezone(settings.TIME_ZONE)).strftime("%d/%m/%Y")

参考代码如下

from dateutil.parser import parse
import pytz

dt = parse("2018-12-10T07:46:45.743+0000")
#datetime.datetime(2018, 12, 10, 7, 46, 45, 743000, tzinfo=tzutc())

# 时区转换
dt1=dt.astimezone(pytz.timezone("Asia/Shanghai"))
#datetime.datetime(2018, 12, 10, 15, 46, 45, 743000, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)

# 同一个时间,不同时区的结果
print('%s\n%s'%(dt,dt1))
#2018-12-10 07:46:45.743000+00:00
#2018-12-10 15:46:45.743000+08:00