python将带有时区的时间戳转换为datetime

python将带有时区的时间戳转换为datetime,python,datetime,Python,Datetime,是我的时间戳,我想将其转换为datetime表示形式。 我使用以下代码来执行此操作: dt = "2021-06-10T10:56:58.189+0200" 但我的输出如下所示: d = dateutil.parser.parse(dt) 变化不大。如何在新创建的datetime对象中包含有关时区的信息。我从文档中又尝试了一些东西,但无法自己解决 提前感谢。请注意,+0200是UTC偏移量,而不是时区(“例如,美国/洛杉矶”是时区)。如果你想设置一个特定的时区,你可以这样

是我的时间戳,我想将其转换为datetime表示形式。 我使用以下代码来执行此操作:

dt = "2021-06-10T10:56:58.189+0200"
但我的输出如下所示:

d = dateutil.parser.parse(dt)
变化不大。如何在新创建的datetime对象中包含有关时区的信息。我从文档中又尝试了一些东西,但无法自己解决


提前感谢。

请注意,
+0200
是UTC偏移量,而不是时区(“例如,美国/洛杉矶”是时区)。如果你想设置一个特定的时区,你可以这样做

2021-06-10 10:56:58.189000+02:00

这回答了你的问题吗?谢谢,这对我有用。很高兴看到我可以提供有关时区的信息。:)@yannickhau这就是datetime类的
tzinfo
属性的作用;-)请注意,您可以从给定的日期/时间+时区明确推断UTC偏移量,但反之亦然。多个(地理)时区可能在给定的时间点共享相同的UTC偏移量。您是对的,但在我再次遇到麻烦之前,您最好知道!)
from datetime import datetime
from zoneinfo import ZoneInfo

# you can do the parsing with the standard lib:
s = "2021-06-10T10:56:58.189+0200"
dt = datetime.strptime(s, "%Y-%m-%dT%H:%M:%S.%f%z")

# now set a time zone:
dt_tz = dt.astimezone(ZoneInfo("Europe/Berlin"))
                      
print(dt_tz) # __str__ gives you ISO format 
# 2021-06-10 10:56:58.189000+02:00

print(dt_tz.strftime("%Y-%m-%dT%H:%M:%S %Z")) # custom format
# 2021-06-10T10:56:58 CEST

print(repr(dt_tz)) # object representation; __repr__
# datetime.datetime(2021, 6, 10, 10, 56, 58, 189000, tzinfo=zoneinfo.ZoneInfo(key='Europe/Berlin'))