如何将自定义字符串解析为时区感知日期时间?

How can I parse a custom string as a timezone aware datetime?

如何解析

18 January 2022, 14:50 GMT-5

作为时区感知日期时间。

pytz.timezone('GMT-5')

失败。 看来我可能需要解析 GMT 部分,并手动应用 5 小时偏移 post 解析?

嗯,也许吧:

import re
import datetime
foo = "18 January 2022, 14:50 GMT-5"
bar = re.sub(r"[+-]\d+$", lambda m: "{:05d}".format(100 * int(m.group())), foo)
print(datetime.datetime.strptime(bar, "%d %B %Y, %H:%M %Z%z" ))

我认为这给了你:

2022-01-18 14:50:00-05:00