如何获取DateTime Python模块来保存星期几而不指定日期?

罗比·S
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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章