当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python datetime.tzinfo.dst用法及代码示例


用法:

tzinfo.dst(dt)

返回夏令时 (DST) 调整,作为 timedelta 对象或 None 如果 DST 信息未知。

如果 DST 无效,则返回 timedelta(0)。如果 DST 生效,则将偏移量作为timedelta 对象返回(有关详细信息,请参阅utcoffset())。请注意,DST 偏移量(如果适用)已添加到 utcoffset() 返回的 UTC 偏移量中,因此除非您有兴趣单独获取 DST 信息,否则无需查阅 dst()。例如,datetime.timetuple() 调用其tzinfo 属性的dst() 方法来确定应如何设置tm_isdst 标志,而tzinfo.fromutc() 调用dst() 来说明跨时区时的夏令时变化。

tzinfo 子类的实例 tz 对标准时间和日光时间进行建模,在这个意义上必须是一致的:

tz.utcoffset(dt) - tz.dst(dt)

必须为每个 datetime dtdt.tzinfo == tz 返回相同的结果 对于理智的 tzinfo 子类,此表达式产生时区的 “standard offset”,它不应取决于日期或时间,而仅取决于地理位置. datetime.astimezone() 的实现依赖于此,但无法检测违规;确保它是程序员的责任。如果 tzinfo 子类不能保证这一点,它可能能够覆盖 tzinfo.fromutc() 的默认实现,以便与 astimezone() 一起正常工作。

dst() 的大多数实现可能看起来像以下两个之一:

def dst(self, dt):
    # a fixed-offset class:  doesn't account for DST
    return timedelta(0)

或者:

def dst(self, dt):
    # Code to set dston and dstoff to the time zone's DST
    # transition times based on the input dt.year, and expressed
    # in standard local time.

    if dston <= dt.replace(tzinfo=None) < dstoff:
        return timedelta(hours=1)
    else:
        return timedelta(0)

dst() 的默认实现引发 NotImplementedError

在 3.7 版中更改:DST 偏移量不限于整数分钟。

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 datetime.tzinfo.dst。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。