java - Python计算两个日期之间的时间范围长度
问题描述
我正在寻找模块ChronoUnit
java.time.temporal.ChronoUnit
在 Python 中实现,在 Java 8 中找到。
这个模块之所以有用,是因为它包含一个计算任意日期之间的天、月、年等的过程。
PS:在python中实现日期计算,可能会导致很多问题,因为有很多我现在根本没有时间考虑的极端情况,所以请在回答时保持建设性。
编辑:我认为我的问题还不够清楚,但我想要完成的是能够实际从另一个日期中减去一个日期,从而得到两者之间的月、日、年等。
根据juanpa.arrivillaga的评论,箭头库提供了一个有用的方法,它提供了一个几乎相似的功能,我想我现在会回答我自己的问题。
解决方案
感谢@junpa.arrivillaga,我发现借助箭头库,该过程可能很容易在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 返回一个生成器,理论上您无法计算生成器的长度,但是如果您确定您使用的生成器返回的是有限的元素集,那么您可以将此生成器转换为列表用来len()
计算它的长度。
谢谢大家。
推荐阅读
- javascript - 日期范围选择器和图表 js
- css - 2018 年联系表 7 的样式日期输入占位符
- php - 邮件功能在 bigrock 主机上不起作用?
- ios - swift - 隐式解包选项
- python - 如何在 Google Earth Engine 中运行大气校正模型
- ruby-on-rails - 如何处理试图入侵我网站的人?
- android - 谷歌静态地图如何从纬度和经度获取位置
- c# - Automapper 将类型 A 的源属性映射到目标列表
- css - CSS Flex,最后两项与其他项的宽度不同
- android - 连接wifi或移动数据时如何检查设备是否处于连接状态?