APScheduler与不同时区
我在我的程序中使用APScheduler来安排在特定时间执行的任务。不过,我遇到了一个问题,就是我处理的时间是不同于本地时间的时区时间。所以我传给APScheduler的时间总是带有时区信息的...
sched.add_date_job(my_job, exec_date, ['text'])
我总是收到一个错误:不能比较没有时区信息的时间和有时区信息的时间,来自APScheduler的错误...
请帮帮我...
3 个回答
0
谢谢你,Alex,提供的信息。我很期待能尽快使用APScheduler 3.0。在此之前,我尝试对2.x版本进行一些修改,以支持时区。我把scheduler.py文件里所有出现的datetime.now()都改成了datetime.now(timezone("utc")),而且我总是用带时区的日期时间来安排任务。看起来这样对我来说是有效的。
2
APScheduler 2.x 版本不支持时区。不过,这个问题在 APScheduler 3.0 版本中已经解决了。坏消息是,3.0 版本还没有发布,而且它的接口也还没有最终确定。好消息是,最难的部分已经完成了,我承诺会在2014年第二季度发布3.0版本。
4
使用新版本的 APScheduler(3.4.0),你可以按照下面的方式设置时区:
在 UTC 时区实例化 APScheduler
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler({'apscheduler.timezone': 'UTC'})
在 Europe/London 时区实例化 APScheduler
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler({'apscheduler.timezone': 'Europe/London'})
来源:http://apscheduler.readthedocs.io/en/latest/userguide.html#configuring-the-scheduler