apache-airflow 1.9 默认时区设置为非 utc

apache-airflow 1.9 default timezone set to non utc

我最近将 airflow 版本从 airflow 1.8 升级到 apache-airflow 1.9,升级成功,我使用 Celery Executor 扩展了环境,一切似乎都运行良好,但 dag 和任务开始日期、执行日期等都出现在 UTC 时区中,预定的 dags 在 UTC 中是 运行ning,在升级之前他们曾经在本地时区 运行 是 pdt。

关于如何将 pdt 作为默认时区的任何想法?

我曾尝试在 airflow.cfgdefault_timezone = pdt 中使用 default_timezone,但即使在重新启动所有服务后,它也会以 UTC 安排日期和任务。期待您帮助修复默认时区为 pdt。

根据 these docsdefault_timezone 接受 IANA TZ 数据库时区标识符。它们列在这里。

如果你想要美国太平洋时间,你应该设置default_timezone=America/Los_Angeles

Airflow 运行 在版本 1.9.0 之前的本地时区是无意的,只是 Airflow 代码使用 datetime.now()datetime.today() 而不是 datetime.utcnow() 的副作用.这在 AIRFLOW-289 下的 1.9.0 中得到了纠正,正如您观察到的那样,使时区独立(始终为 UTC)。

对Airflow 的时区感知的官方支持已合并到master 分支中。这项工作是作为 AIRFLOW-288 的一部分完成的,并且 在最新的稳定版本 (1.9.0) 中不可用 。您可能会在下一个主要版本中期待它。

完成更改后,Matt 的回答应该可以满足您的需求。