在Python中从忽略DST的时区获取时区偏移

iag*_*460 3 python timezone datetime

在Python中从时区获取UTC偏移量的正确方法是什么?我需要一个函数来发送 pytz 时区并获取时区偏移量,忽略夏令时。

import pytz
tz = pytz.timezone('Europe/Madrid')
getOffset(tz) #datetime.timedelta(0, 3600)
Run Code Online (Sandbox Code Playgroud)

voi*_*oid 6

pytz时区对象遵循模块中定义的tzinfo API 规范datetime。因此您可以使用它们的.utcoffset().dst()方法:

timestamp = datetime(2009, 1, 1)  # any unambiguous timestamp will work here

def getOffset(tz):
    return tz.utcoffset(timestamp) - tz.dst(timestamp)
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案。要注意为什么仍然需要“时间戳”,请考虑多年来许多时区已经更改了其“标准”时间。 (2认同)