我在我的程序中使用APScheduler来安排特定日期时间的作业。但是我正在使用与本地时间不同的时区来处理日期时间。因此,我传递给APScheduler的日期时间总是一个时区感知的datime ......
sched.add_date_job(my_job, exec_date, ['text'])
我总是得到:无法比较offset-naive和offset-aware datetimes 来自APScheduler ...
请帮忙......
答案 0 :(得分:2)
APScheduler 2.x不支持时区。但是,这已在APScheduler 3.0中得到修复。坏消息是3.0尚未发布,API尚未最终确定。好消息是,困难的部分已经完成,我承诺在2014年第二季度提供3.0。
答案 1 :(得分:0)
感谢Alex提供的信息,我预计很快会使用APScheduler 3.0。与此同时,我尝试通过将scheduler.py中datetime.now()的任何出现更改为datetime.now(timezone(“utc”))来修补2.x版本以支持时区,并且我总是使用timezone计划作业知道日期时间。它似乎对我有用..
答案 2 :(得分:0)
使用新版本的APScheduler(3.4.0),您可以设置时区如下:
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler({'apscheduler.timezone': 'UTC'})
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler({'apscheduler.timezone': 'Europe/London'})
来源:http://apscheduler.readthedocs.io/en/latest/userguide.html#configuring-the-scheduler