我知道这个问题的答案通常是“转到Python 的文档”。我已经阅读了它,但仍然不是 100% 确定 uctcoffset 方法的作用。
我假设它需要时区 - UTC 并给出差异,但我需要 100% 确定。
a 的utcoffset方法datetime为您提供了日期时间的“挂钟”时间与 UTC 中同一时间点的“挂钟”时间之间的差异,因此,正如您所期望的 ( 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
Run Code Online (Sandbox Code Playgroud)
如您所见,这同样适用于该tzname()函数。对于天真的日期时间(没有日期时间的那些),utcoffset()并且tzname()都应该返回None.
作为一个说明,我通常建议不使用此功能来计算UTC时间戳,相反,你应该使用astimezone()有两种dateutil.tz.tzutc或pytz.UTC或者,如果你正在使用Python版本> = 3.2,则可以使用datetime.timezone.utc对象。
| 归档时间: |
|
| 查看次数: |
11415 次 |
| 最近记录: |