import datetime
import pandas as pd
def split_time_ranges(from_time, to_time, frequency):
from_time, to_time = pd.to_datetime(from_time), pd.to_datetime(to_time)
time_range = list(pd.date_range(from_time, to_time, freq='%sS' % frequency))
if to_time not in time_range:
time_range.append(to_time)
time_range = [item.strftime("%Y-%m-%d") for item in time_range]
time_ranges = []
for item in time_range:
f_time = item
t_time = (datetime.datetime.strptime(item, "%Y-%m-%d") + datetime.timedelta(seconds=frequency))
if t_time >= to_time:
t_time = to_time.strftime("%Y-%m-%d")
time_ranges.append([f_time, t_time])
break
time_ranges.append([f_time, (datetime.datetime.strptime(t_time.strftime("%Y-%m-%d"), '%Y-%m-%d') + datetime.timedelta(days=-1)).strftime("%Y-%m-%d")])
return time_ranges
if __name__ == '__main__':
s = '2021-10-01'
e = '2021-11-01'
frequency = 60 * 60 * 24 * 15
time_ranges = split_time_ranges(s, e, frequency)
print(time_ranges)
运行结果:
[['2021-10-01', '2021-10-15'], ['2021-10-16', '2021-10-30'], ['2021-10-31', '2021-11-01']]