Airflow 2.1.3 Timezone时区问题
- airflow.cfg 文件中配置
default_timezone = Asia/Shanghai
default_ui_timezone = Asia/Shanghai
- 如果只配置上面,则实际调度时间会+8h,即schedule_interval时间为UTC。修改DAG中start_date时区可解决
'start_date': days_ago(1).replace(tzinfo=pendulum.timezone("Asia/Shanghai"))
- 修改了上面的start_date时区,但是execution_date时区依然是UTC,例如 {
{ ds }} 时间会比调度时间-8h,需要修改execution_date时区
- 修改execution_date时区有几种方法:
- 直接修改
‘{
{ ds }}’ 改为 ‘{
{ execution_date.in_timezone(“Asia/Shanghai”).strftime(“%Y-%m-%d”) }}’
- Airflow udm,示例如下
from datetime import datetime
from airflow import DAG