我不知道如何使用datetime.tzinfo
模块。我必须将日期时间数据从UTC转换为本地时区,如果我检索' + 2'(这意味着gmt + 2)我该如何将其转换为tzinfo对象?
此外,是否可以在自动应用夏令时的情况下将UTC转换为本地时区?如何设置在dst期间自动减去一小时
答案 0 :(得分:1)
Python并没有真正实现好的时区。根据{{3}},tzinfo只是一个旨在由用户实现的抽象类。
我建议使用第三方documentation模块来处理时区。
答案 1 :(得分:0)
您可以使用tzoffset
设置检索的时区偏移量。例如,如果您得到" + 2",则解析该字符串以便n = 2
:
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))
变量utc_dt
仅用于确保您的原始日期时间具有正确的UTC时区作为属性,否则它将无法正常工作。然后,您可以设置目标本地时间的偏移量(以秒为单位)。
我不确定是否可以在知道UTC / GMT偏移量的情况下应用DST,因为某个时区的某些国家/地区可能不会应用它。如果你有准确的本地化,比如"欧洲/维也纳",你可以使用pytz库和datetime.dst()方法来确定是否减去一小时。