在 python 中生成基于时间间隔的时间戳

Generate interval based timestamps in python

什么是生成时间间隔为 5 分钟的时间戳序列的好方法,开始时间为 09:10:00,结束时间为 15:30:00

我知道我可以像下面那样对其进行硬编码(包含所有条目,但必须有一种干净的方法,我可以只给出间隔。

times=[pd.to_datetime(i).time() for i in '10:15:00','10:15:05','10:15:10','10:15:15','10:15:20','15:25:00','15:30:00']

我试过了

datetime_range(datetime.time(09,15,00), datetime.time(15,30,00),  timedelta(minutes=5))

但这给出了 SyntaxError: invalid token

What could be a good way to generate timestamp series for 5 minute interval with a start time of say 09:10:00 and end time of 15:30:00

一个简单的循环就可以解决问题:

from datetime import datetime, time, timedelta

times = []
ts = datetime(2017, 7, 17, 9, 10, 0)
while ts <= datetime(2017, 7, 17, 15, 30, 0):
    times.append(time(ts.hour, ts.minute, ts.second))
    ts += timedelta(minutes=5)

开始使用 datetime 对象的原因是它们支持 timedelta 对象,可以缩短您的问题。从那里,使用 time(ts.hour, ts.minute, ts.second).

很容易转换为 time 对象

这个怎么样?

times = [(datetime.datetime(2017, 7, 17, 9, 10, 0) + datetime.timedelta(minutes=5*x)).time() for x in range(5)]

它有点长,但它看起来像你想要的那样全部排在一条线上。当然,您可以通过导入您需要的函数而不是整个模块来解决这个问题。