如何在Python时间戳文字中指定时区?

问题描述 投票:0回答:1

以下作品:

 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"

那没有用。我不确定这里的语法是什么。

python timestamp
1个回答
0
投票

%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)))
© www.soinside.com 2019 - 2024. All rights reserved.