如何获得一组开始时间和结束时间之间的所有时间?

How to get a set of all time between range of start and end time?

我想在 python 中获取开始时间和结束时间之间的所有时间,所以我使用了带有范围函数的 for 循环。

有 2 个变量,ab,它们的时间格式为 %H:%M:%S

这两个变量是开始时间和结束时间,我想打印开始时间和结束时间之间的所有时间。

import datetime
from datetime import datetime
import time

a = '20:15:16'
b = '20:32:55'

a = datetime.strptime(a,'%H:%M:%S').time()
b = datetime.strptime(b,'%H:%M:%S').time()

for i in range(a,b):
    print(i)

为此我收到一个错误 - datetime.time' object cannot be interpreted as an integer

我想在 ab 之间一直打印。

两次之间有无限的瞬间。我想您可能会问,“我怎样才能在 A 和 B 之间的每一秒或每一分钟打印一个时间戳?”

我认为您不想使用范围函数。您看到的错误是因为范围需要整数作为输入,而不是整个日期时间对象。

这里有一些东西可以满足您的需求:

from datetime import datetime, timedelta

# Define our times
str_A = '20:15:16'
str_B = '20:32:55'

# Create our datetime objects
A = datetime.strptime(str_A,'%H:%M:%S')
B = datetime.strptime(str_B,'%H:%M:%S')

# Create a loop where you print a time, starting with time A
# and then increase the time stamp by some value, in this case,
# 1 minute, until you reach time B
tmp = a
while tmp <= b:
    print(tmp.time())
    tmp = tmp + timedelta(minutes=1)

请注意这一行,

print(tmp.time())

我们只在需要时提取时间部分,将对象保留为日期时间对象以便于操作。

我参考了这个问题: What is the standard way to add N seconds to datetime.time in Python?

所以这个问题真的很萌。阅读有一些东西,'I need to print "all the time" between these two times' 给我带来快乐。