您如何将时间流逝分成均匀大小的块?

时间:2019-03-18 12:22:30

标签: python python-3.x time

我需要每隔几分钟将时间流逝分成大小均匀的块。例如。从现在到1小时前的时间,每12分钟,每5分钟一次。如何在Python 3中实现这一目标?

2 个答案:

答案 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)

尽管API有点复杂,但

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)

两者都比直接处理时间戳要慢。