Python 获取 2 个日期时间对象之间的整小时值



我有 2 个日期时间值:"开始"和"结束"。我想返回一个列表,其中包含所有恰好落在两者之间的小时(包括)的日期时间。

例如,"开始"是

09:30,"结束"是14:00(同一天)。我想返回的值是

10:00、11:00、12:00、13:00、14:00。

我想你要做的是在"开始"之后获取下一个整小时,将其添加到空白列表中,然后创建一个加法和小时的循环,测试它是否小于(或等于)"结束"并将其附加到列表中如果为 true。

我无法弄清楚的是,如何获得最接近开始日期时间的整小时。

最简单的方法是将开始时间的分钟和秒替换为零,然后添加一个小时。

如果开始时间正好是整点并且您希望将其包括在内,则需要特殊情况

例如

>>> from datetime import datetime, timedelta
>>> start_time = datetime.now()
>>> start_time
datetime.datetime(2011, 5, 18, 20, 38, 55, 546000)
>>> first = start_time.replace(minute=0, second=0, microsecond=0)+timedelta(hours=1)
>>> first
datetime.datetime(2011, 5, 18, 21, 0)
>>> 

最好的方法是使用timedelta。

>>> from datetime import datetime, timedelta
>>> start = datetime.now()
>>> if start.minute >= 30:
...     start.replace(minute=0)+timedelta(hours=1)
... else:
...     start.replace(minute=0)

相关内容

  • 没有找到相关文章

最新更新