gpt4 book ai didi

具有负值的 Python timedelta 对象

转载 作者:太空狗 更新时间:2023-10-30 02:54:11 25 4
gpt4 key购买 nike

我不太明白 datetime.timedelta 中的负参数是如何解释的。

具有正值:

>>> from datetime import timedelta
>>> d = timedelta(days=1,seconds=1,microseconds=1,milliseconds=1,minutes=1,hours=1,weeks=1)
>>> (d.days, d.seconds, d.microseconds)
>>> (8, 3661, 1001)

这很简单。具有负值的类似示例如下所示:

>>> from datetime import timedelta
>>> d = timedelta(days=-1,seconds=-1,microseconds=-1,milliseconds=-1,minutes=-1,hours=-1,weeks=-1)
>>> (d.days, d.seconds, d.microseconds)
>>> (-9, 82738, 998999)

根据我的理解,秒和微秒的派生方式如下:

  • 秒数 = 86399 - (-60-3600-1)
  • 微秒 = 999999 - (-1-1000)

这是正确的吗?为什么天数等于 -9?

我正在阅读 this文档部分。但是仍然不太了解负值的工作。请分享解释或相关文档链接。谢谢:)

最佳答案

由于时间增量的内部存储方式,只有 days 属性可以取负值。当打印回 timedelta 时,这可能会令人惊讶。一个illuminating example from the docs ,

>>> d = timedelta(microseconds=-1)
>>> (d.days, d.seconds, d.microseconds)
(-1, 86399, 999999)

即。 -1d + 86399s + 999999µs = -1µs

关于具有负值的 Python timedelta 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46803405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com