%Z
只能解析时区名称(例如“UTC”、“EST”、“CST”),而不能解析像“UTC-8”这样的偏移,您需要使用
%z
(参见
docs
):
>>> from datetime import datetime
>>> datetime_str = "2023-11-15 01:02:03.123456-0800" # UTC-8
>>> datetime_object = datetime.strptime(datetime_str, "%Y-%m-%d %H:%M:%S.%f%z")
>>> datetime_object
datetime.datetime(2023, 11, 15, 1, 2, 3, 123456, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600)))
n.b.
请确保您的时区偏移字符串符合+HHMM或-HHMM格式。