我需要每隔几分钟将时间流逝分成大小均匀的块。例如。从现在到1小时前的时间,每12分钟,每5分钟一次。如何在Python 3中实现这一目标?
答案 0 :(得分:1)
您可以在datetime模块中使用timedelta。
from datetime import datetime
from datetime import timedelta
start = datetime.now()
end = datetime(2019, 3, 19, 18, 00, 00)
while start < end:
print(start)
start += timedelta(minutes=5) # add 5 minutes to start time
答案 1 :(得分:-2)
dateutil.rrule
可能是最简单的长期方法:
rrule(dtstart=datetime.now() - timedelta(hours=1), until=datetime.now(), freq=MINUTELY, interval=5)
或者,您可以很容易地手动执行此操作,只需获取开始和结束日期时间,然后将开始时间增加适当的时间增量,直到超出结束范围为止。如果需要特定数量的块而不是特定的块长度,请计算开始和结束之间的差,然后除以您的数目。
occurrences = []
end = datetime.now()
st = datetime.now() - timedelta(hours=1)
while st < end:
occurrences.append(st)
st += timedelta(minutes=5)
两者都比直接处理时间戳要慢。