以下作品:
datetime.strptime("2023-11-15 01:02:03.123456", "%Y-%m-%d %H:%M:%S.%f"))
输出[11]: datetime.datetime(2023, 11, 15, 1, 2, 3, 123456)
但是以下失败:
datetime.strptime("2023-11-15 01:02:03.123456", "%Y-%m-%d %H:%M:%S.%f%Z"))
ValueError:时间数据'2023-11-15 01:02:03.123456' 与格式“%Y-%m-%d %H:%M:%S.%f%Z”不匹配
应该如何设置时间戳文字来指定
UTC-8
?
更新我也试过了
"2023-11-15 01:02:03.123456 -08:00"
那没有用。我不确定这里的语法是什么。
%Z
只能解析时区名称(例如'UTC','EST','CST'),而不能解析像'UTC-8'这样的偏移量,你需要使用%z
:
>>> 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)))