Python 计算两个日期之间的时间范围长度

Python compute timeframe length between two dates

我正在寻找模块 ChronoUnit

java.time.temporal.ChronoUnit 

在 Python 中实现,在 Java 8.

中找到

此模块之所以有用,是因为它包含一个计算任意日期之间的日、月、年等的过程。

PS:在python中实现日期计算可能会导致很多问题,因为有很多极端情况我现在根本没有时间考虑,所以请回答时要有建设性。

编辑:我认为我的问题不够清楚,但我想要完成的是能够实际从一个日期中减去另一个日期,从而得到月、日、年等。两者之间。

根据 juanpa.arrivillaga 评论 arrow 库提供了一个有用的方法,它提供了一个非常相似的功能,我认为我现在会回答我自己的问题。

感谢@junpa.arrivillaga 我发现由于 arrow 库,该过程可能很容易在 python 中实现。

下面的api要使用它:

arrow.Arrow.range('hour', start, end)

Python 中的最终方法是:

'''
    Computes day, month, year s 
    between two dates.
    frame - time frame 
    start - date start 
    end - date finish
    This method only works if the generated timeframe between to dates 
    is finite, as Arrow.range returns a generator!
'''
def count_frame_between_dates(frame, start, end):
    return len(list(arrow.Arrow.range(frame, start, end)))

编辑:Arrow.range returns 一个生成器,理论上你无法计算生成器的长度,但如果你确定你正在使用的生成器返回的是有限集元素然后你可以将这个generato转换成一个列表然后使用len()来计算它的长度。

谢谢大家。