Python 如何设置明天上午10点的计时器
我尝试了其他类似问题()的答案中的一些建议,到目前为止,我得到的是:Python 如何设置明天上午10点的计时器,python,datetime,timer,timezone,python-multithreading,Python,Datetime,Timer,Timezone,Python Multithreading,我尝试了其他类似问题()的答案中的一些建议,到目前为止,我得到的是: t = datetime.datetime.today() tomorrow = datetime.datetime(t.year,t.month,t.day+1,10,0) 问题是,当我们有一个月的最后一天,这将失败: ValueError: day is out of range for month 那么,我如何重写这条语句(不将其包装到IF条件中,试图在这是最后一天找到它)以包含这种情况呢 另一个问题是-这种计时器的
t = datetime.datetime.today()
tomorrow = datetime.datetime(t.year,t.month,t.day+1,10,0)
问题是,当我们有一个月的最后一天,这将失败:
ValueError: day is out of range for month
那么,我如何重写这条语句(不将其包装到IF条件中,试图在这是最后一天找到它)以包含这种情况呢
另一个问题是-这种计时器的时区是什么?我如何在当前(系统)时区工作?使用和:
备选方案:
tomorrow = datetime.datetime.combine(t.date(), datetime.time(10)) + \
datetime.timedelta(days=1)
tomorrow = datetime.datetime(t.year, t.month, t.day, 10) + \
datetime.timedelta(days=1)
注意:在某些时区中,明天上午10点可能永远不会发生,或者由于DST的变化,可能会发生两次。@J.F.Sebastian-有什么办法可以解决这个问题吗?是的,如果您知道您的上下文,多个(明显的)解决方案是可能的,例如跳过事件、重复事件、在固定秒数内执行任务等。我的上下文是“穷人的cron”-每天上午10点左右执行一些功能。
tomorrow = datetime.datetime.combine(t.date(), datetime.time(10)) + \
datetime.timedelta(days=1)
tomorrow = datetime.datetime(t.year, t.month, t.day, 10) + \
datetime.timedelta(days=1)