我知道这个问题的答案通常是“转到Python's documentation”。我已经阅读过了,并且仍然不能100%确定uctcoffset方法的作用。
我认为它需要时区 - utc并给出差异,但我需要100%确定。
答案 0 :(得分:2)
编辑: 确切地说,它不需要时区,需要0个参数。您可以在datimeobject上调用它,该对象具有与之关联的时区(如果它是时区感知的)。在这种情况下,该方法将返回timedelta对象,该对象表示datetime对象的时区与utc之间的差异
答案 1 :(得分:2)
utcoffset
的{{1}}方法为您提供日期时间的“挂钟”时间与UTC中同一时间点的“挂钟”时间之间的差异,因此,确切地说如你所料(datetime
)。它是一个函数的原因是,对于许多时区(例如夏令时),偏移量在一年内发生变化。举个例子:
dt - dt_as_utc
如您所见,这同样适用于from datetime import datetime, timedelta
from dateutil import tz
NYC = tz.gettz('America/New_York') # Note: ambiguous time support
# requires version >= 2.6.0, be aware.
dt1 = datetime(2015, 5, 21, 12, 0, tzinfo=NYC) # EST
dt2 = datetime(2015, 12, 21, 12, 0, tzinfo=NYC) # EDT
print(dt1.utcoffset() / timedelta(hours=1))
# -4
print(dt1.tzname())
# EDT
print(dt2.utcoffset() / timedelta(hours=1))
# -5
print(dt2.tzname())
# EST
功能。对于天真的日期时间(没有日期时间),tzname()
和utcoffset()
都应返回tzname()
。
作为一个注释,我通常会建议不使用此函数来计算 UTC时间戳,而应该使用None
和{{3}或者astimezone()
或者,如果您使用的是Python版本> = 3.2,则可以使用dateutil.tz.tzutc
对象。