从datetime docs:
如果tzinfo是None,返回无
在你的代码,dt.tzinfo
为None
,所以时区信息不被parse_date
解析成dt
。您的日期时间dt
是“天真”(没有时区信息)。
按照该dateutil docs,你可以通过你自己的时区信息parse_date
无论是作为tzoffset
或tzfile
:
tzinfos = {"CDT": -21600}
dt = parse_date('2017-08-28 06:08:20 CDT', tzinfos=tzinfos)
dt.tzinfo #tzoffset('CDT', -21600)
from dateutil import tz
tzinfos = {"CDT": tz.gettz('US/Central')}
dt = parse_date('2017-08-28 06:08:20 CDT', tzinfos=tzinfos)
dt.tzinfo #tzfile('/usr/share/zoneinfo/US/Central')
或者你可以编码区偏移到字符串:
dt = parse_date('2017-08-28 06:08:20-06:00')
dt.tzinfo #tzoffset(None, -21600)