我正在通过pivotal tracker api接收这样的格式化日期字符串:“2012/06/05 17:42:29 cest”
我想把这个字符串转换成一个utc datetime对象,看起来python dateutil不识别那个时区,pytz也不知道。
我担心我最好的办法是用英语四级考试取代弦乐中的cest,但这感觉很不对。有没有其他方法可以将夏季时间字符串解析为我找不到的UTC日期时间对象?
pytz.timezone('CEST')
# -> pytz.exceptions.UnknownTimeZoneError: 'CEST'
dateutil.parser.parse("2012/06/05 17:42:29 CEST")
# -> datetime.datetime(2012, 6, 5, 17, 42, 29)
编辑:再考虑一下,减去1小时是完全错误的,因为对应的时区也在夏季,解析的问题仍然存在
最佳答案
没有真正的CEST
时区。根据您所在的地区使用Europe/Paris
、Europe/Berlin
或Europe/Prague
(或其他选项):
>>> pytz.country_timezones('de')
[u'Europe/Berlin']
>>> pytz.country_timezones('fr')
[u'Europe/Paris']
它们(目前)是相同的,都指夏季的
CEST
。>>> dateutil.parser.parse("2012/06/05 17:42:29 CEST").astimezone(pytz.utc)
datetime.datetime(2012, 6, 5, 15, 42, 29, tzinfo=<UTC>)