APScheduler具有不同的时区

时间:2014-04-06 07:12:26

标签: python timezone apscheduler

我在我的程序中使用APScheduler来安排特定日期时间的作业。但是我正在使用与本地时间不同的时区来处理日期时间。因此,我传递给APScheduler的日期时间总是一个时区感知的datime ......

sched.add_date_job(my_job, exec_date, ['text'])

我总是得到:无法比较offset-naive和offset-aware datetimes 来自APScheduler ...

请帮忙......

3 个答案:

答案 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),您可以设置时区如下:

UTC 时区

中的APScheduler实例
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler({'apscheduler.timezone': 'UTC'})

欧洲/伦敦时区

中的APScheduler实例
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler({'apscheduler.timezone': 'Europe/London'})

来源:http://apscheduler.readthedocs.io/en/latest/userguide.html#configuring-the-scheduler