如何在Python中使用datetime.tzinfo?

如何在Python中使用datetime.tzinfo?,python,datetime,timezone,tzinfo,Python,Datetime,Timezone,Tzinfo,我不知道如何使用datetime.tzinfo模块。我必须将日期时间数据从UTC转换为本地时区,如果检索到“+2”(即gmt+2),如何将其转换为tzinfo对象 此外,是否可以在自动应用夏令时的情况下从UTC转换为本地时区?如何设置在dst期间仅自动减去一小时?Python并没有很好地实现时区。根据,tzinfo只是一个抽象类,由用户实现 我建议使用第三方模块处理时区。您可以使用tzoffset设置您检索的时区偏移量。例如,如果您得到“+2”,请解析该字符串,以便n=2: 使用变量utc_d

我不知道如何使用
datetime.tzinfo
模块。我必须将日期时间数据从UTC转换为本地时区,如果检索到“+2”(即gmt+2),如何将其转换为tzinfo对象


此外,是否可以在自动应用夏令时的情况下从UTC转换为本地时区?如何设置在dst期间仅自动减去一小时?

Python并没有很好地实现时区。根据,tzinfo只是一个抽象类,由用户实现


我建议使用第三方模块处理时区。

您可以使用
tzoffset
设置您检索的时区偏移量。例如,如果您得到“+2”,请解析该字符串,以便
n=2

使用变量
utc_dt
只是为了确保原始日期时间具有正确的utc时区作为属性,否则它将不起作用。然后,您可以设置目标本地时间的偏移量(以秒为单位)


我不确定仅仅知道UTC/GMT偏移量是否可以应用DST,因为时区中的一些国家可能不应用它。如果您有准确的本地化,如“欧洲/维也纳”,您可以使用pytz库和方法来确定是否减去1小时。

非常感谢。我试试看。
from dateutil.tz import tzoffset

utc_dt = your_datetime.replace(tzinfo=tzoffset("UTC+0",0))
local_dt = utc_dt.astimezone(tzoffset("UTC+{}".format(n), n*60*60))