Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何设置明天上午10点的计时器_Python_Datetime_Timer_Timezone_Python Multithreading - Fatal编程技术网

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)