我有格式为“25-10月-20:00格林尼治时间”和“25-10月-20:12:00英国时间”的时间戳,我希望将它们解析为一个时区感知的日期时间。我尝试使用strptime格式"%d-%b-%y %I:%M:%S %p %Z“
但是,datetime.strptime的%Z参数不承认BST是一个有效的输入,而且我无法找到处理解析夏时制的“正确”方法。
发布于 2021-04-09 11:33:00
如果您查看来自dateutil
的错误,它会显示如下:
UnknownTimezoneWarning: tzname BST identified but not understood.
Pass `tzinfos` argument in order to correctly return a timezone-aware
datetime. In a future version, this will raise an exception.
换句话说,您可以传递一个字典,将时区别名(如"BST")映射到适当的时区信息。也许是这样:
>>> import dateutil.parser
>>> import dateutil.tz
>>> BST = dateutil.tz.gettz('Europe/London')
>>> dateutil.parser.parse('25-Oct-20 12:00:00 AM BST', tzinfos={'BST': BST})
datetime.datetime(2020, 10, 25, 0, 0, tzinfo=tzfile('/usr/share/zoneinfo/Europe/London'))
https://stackoverflow.com/questions/67019964
复制相似问题