2

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

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

我总是得到:无法比较来自 APScheduler 的 offset-naive 和 offset-aware 日期时间......

请帮忙...

4

3 回答 3

4

使用新版本的 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

于 2017-11-08T13:07:58.120 回答
2

APScheduler 2.x 不支持时区。但是,这已在 APScheduler 3.0 中得到修复。坏消息是 3.0 尚未发布,API 也尚未最终确定。好消息是困难的部分已经完成,我已承诺在 2014 年第二季度交付 3.0。

于 2014-04-06T17:26:07.027 回答
0

感谢 Alex 提供的信息,预计我很快就会使用 APScheduler 3.0。同时,我尝试通过将 scheduler.py 中出现的任何 datetime.now() 更改为 datetime.now(timezone("utc")) 来修补 2.x 版本以支持时区,并且我总是使用时区安排作业知道日期时间..它似乎对我有用..

于 2014-04-06T18:45:07.530 回答