from datetime import datetime, timedelta
def generate_intervals_for_day(day: datetime):
intervals = []
interval = timedelta(minutes=15)
day_str = day.strftime('%Y-%m-%d')
if day.weekday() == 4: # Friday, weekday()返回0~6,周五是4
# 0:00 - 8:00 一段
start1 = datetime.strptime(day_str + " 00:00:00", "%Y-%m-%d %H:%M:%S")
end1 = datetime.strptime(day_str + " 08:00:00", "%Y-%m-%d %H:%M:%S")
intervals.append((start1, end1))
# 8:00 - 20:00 15分钟间隔
current = end1
end2 = datetime.strptime(day_str + " 20:00:00", "%Y-%m-%d %H:%M:%S")
while current < end2:
start_period = current
end_period = current + interval
intervals.append((start_period, end_period))
current += interval
# 20:00 - 24:00 一段
start3 = end2
end3 = datetime.strptime(day_str + " 23:59:59", "%Y-%m-%d %H:%M:%S") + timedelta(seconds=1)
intervals.append((start3, end3))
else:
# 非周五,0:00 - 24:00 15分钟间隔
start = datetime.strptime(day_str + " 00:00:00", "%Y-%m-%d %H:%M:%S")
end = start + timedelta(days=1)
current = start
while current < end:
start_period = current
end_period = current + interval
intervals.append((start_period, end_period))
current += interval
return intervals
def format_interval(interval):
start, end = interval
start_str = start.strftime('%Y-%m-%d %H:%M:%S.000 +0800')
end_str = end.strftime('%Y-%m-%d %H:%M:%S.000 +0800')
return f"from('{start_str}') to ('{end_str}')"
def main():
# 今天日期
today = datetime.now()
intervals = generate_intervals_for_day(today)
# 输出所有时间段
for interval in intervals:
print(format_interval(interval))
# 取最后时间段结束时间格式化
last_end = intervals[-1][1]
formatted_final_time = f"{last_end.strftime('%Y%m%d')}——{last_end.strftime('%H%M%S')}"
print("\n最后的时间点格式化为:")
print(formatted_final_time)
if __name__ == "__main__":
main()
生成时间戳
于 2025-05-23 11:10:06 首次发布