在了解时区的DAG中,next_ds在夏令时期间的行为是否正确?

我正在运行时间表为0 0 * * 1-5的时区感知DAG(tz = Europe / London)。

在星期五的跑步中,2020-03-27next_ds设置为2020-03-29。但是,根据时间表,我希望它是2020-03-30

该间隔包含夏令时跳过-next_ds是否可能没有适当考虑这一点?还是对此行为有不同的解释?

daihongjian8307 回答:在了解时区的DAG中,next_ds在夏令时期间的行为是否正确?

事实证明,我应该已经阅读了手册-在https://airflow.apache.org/docs/stable/timezone.html上写着

Airflow在模板中返回可识别时区的日期时间,但不会将其转换为本地时间,因此它们保留在UTC中。由DAG处理。

我现在正在使用jinja过滤器来解决此问题,定义

def local_ds(execution_date):
    return execution_date.in_timezone(local_tz).strftime('%Y-%m-%d')

,然后在模板中使用{{ execution_date | local_ds }}

我想这会特别困扰那些使用Europe/London时区的人们,因为当地时间的午夜在冬季是UTC的午夜,但是在夏季,它变成UTC的前一天的23:00,因此更改了日期。

本文链接:https://www.f2er.com/2551614.html

大家都在问