【发布时间】:2020-02-16 09:06:31
【问题描述】:
我需要计算两个日期之间的天数。一个是今天,另一个是-2580,01,01。
我已尝试使用 datetime 库,但我不能,因为 datetime 库不接受负数年(MIN=1,MAX=9999)。
我试过dateutil.relativedelta:
from datetime import *
from dateutil.relativedelta import *
import calendar
RightNOW = datetime.now() # with full time
JustTODAY = date.today() # only days
PastTime = JustTODAY+relativedelta(years=-4600)
print(PastTime)
Traceback (most recent call last):
File "GoblinTest.py", line 11, in <module>
PastTime = JustTODAY+relativedelta(years=-4600)
File "/usr/lib/python3.8/site-packages/dateutil/relativedelta.py", line 405, in __radd__
return self.__add__(other)
File "/usr/lib/python3.8/site-packages/dateutil/relativedelta.py", line 387, in __add__
ret = (other.replace(**repl)
ValueError: year -2580 is out of range
【问题讨论】:
-
其中一个主要问题是,确切的日期在很久以前变得非常模糊......您在这里尝试进行什么样的计算以及您期望结果的准确度如何?跨度>
-
如果您只对相对数字感兴趣(而不关心您是否偏离了一两天),您可以简单地移动时间刻度并计算今天和今天之间的天数 + 偏移量(4600 )
-
您可以使用像jdcal 这样的第三方模块,因为:'[所有] 函数都是“预想的”。这意味着它们适用于相关日历不在的日期有效。'
标签: python python-3.x python-datetime python-dateutil