青春有我
首先,您需要使用模块将时间从字符串转换为时间戳对象。之后,您可以每天走一步并计算一天中剩余的小时数。最后添加一个检查日期是否与结束日期相同,请使用结束日期中的小时数作为时差。datetime从字符串中读取日期时间需要使用日期格式语法。基本上,百分号后跟字母用于表示日期时间字符串的标准部分。即 是 24 小时格式的小时,是年,是月,是分钟。破折号,空格,斜杠,冒号和点也需要与字符串中的内容相匹配。有关完整列表,请参阅此站点:https://strftime.org/%H%Y%m%Mimport datetime as dtstart_date = '2020-01-01 10:00'end_date = '2020-01-04 15:00'start = dt.datetime.strptime(start_date, '%Y-%m-%d %H:%M')end = dt.datetime.strptime(end_date, '%Y-%m-%d %H:%M')def hours_left(ts): return 24-(ts.hour + ts.minute / 60)hours = []day = startfor i in range(d.days + bool(d.seconds)): if day.date() != end.date(): h = hours_left(day) else: h = end.hour + end.minute / 60 hours.append((day.date(), h)) day = day + dt.timedelta(hours=h)hours# returns:[(datetime.date(2020, 1, 1), 14.0), (datetime.date(2020, 1, 2), 24.0), (datetime.date(2020, 1, 3), 24.0), (datetime.date(2020, 1, 4), 15.0)]下面是包含日期和时间的元组列表。如果您希望它作为字符串列表,则可以通过字符串格式化程序传递它。hourshours_str = [f'{d.strftime("%Y-%m-%d")} {h:.0f} hours' for d, h in hours]hours_str# returns['2020-01-01 14 hours', '2020-01-02 24 hours', '2020-01-03 24 hours', '2020-01-04 15 hours']