Date = datetime.datetime.strptime(f"{AnimeListDates[show]['day_of_the_week']}-{AnimeListDates[show]['start_time']}", '%A-%H:%M')
如果我执行Date.weekday(),则无论我在“星期几”字段中输入什么内容,我都将获得0(星期一)。经过一些测试,我发现未指定的日期默认为1970-01-01,该日期为0(星期一)。无论如何,我可以使datetime对象保留没有日期的星期几吗?解决这个问题非常繁琐,需要我存储一周中每一天的日期,并将其传递给每当被检测到的日期或沿这些日期的日期。
编辑:可能在strptime“ thursday-23:30”中的示例
简短的回答:不。Datetime对象始终与特定的日期和时间关联。您无法将工作日与日期分开。
我想花星期几+时间减去它的14个小时,然后再给我新的星期几
根据您对目标的评论,您可以采用其他方式解决问题:
如果您要在没有特定日期的日子里工作,则该calendar
模块可能适用。虽然,您实际上只需要知道星期的名称。
datetime.time
如果需要处理时间的方法(没有任何特定日期),则可以将其与对象结合使用。
import calendar
days = list(calendar.day_name)
# ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
my_animu = AnimeListDates[show]
show_time = datetime.time.fromisoformat(my_animu['start_time'])
show_day = my_animu['day_of_the_week']
show_day_index = days.index(show_day.title()) # analog to date.weekday()
要提前14小时获取新的日期和时间:
new_hour = (show_time.hour - 14) % 24
new_time = show_time.replace(hour=new_hour)
if 14 > show_time.hour: # 14 hours ago is the previous day
new_day_index = show_day_index - 1
else: # 14 hours ago is still the same day
new_day_index = show_day_index
new_day = days[new_day_index]
print(f'{new_day}-{new_time}')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句