You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow中如何提取Context["execution_date"]与DR.exuection_date的日份

Airflow 提取日期日份比对实现方案

在Airflow做任务调度开发时,需要提取Context["execution_date"]、DR.execution_date两个对象的日份做一致性校验,典型需求是从01-04-2022格式的日期中取出日份值04,具体实现分两种场景处理:

处理Airflow原生日期对象

Airflow 上下文、TaskInstance相关属性里拿到的execution_date本身是Pendulum日期对象,完全兼容Python标准datetime接口,不需要转字符串再做拆分,直接调用内置属性就能拿到日份:

# 分别提取两个日期对象的日份数值
context_exec_day = context["execution_date"].day
dr_exec_day = DR.execution_date.day

# 直接做数值比对即可判断日份是否一致
if context_exec_day == dr_exec_day:
    # 日份一致时的业务逻辑
    pass

# 如果需要拿到带前导零的两位日份字符串(比如示例中的04),直接格式化输出即可
context_exec_day_str = context["execution_date"].strftime("%d")

不要直接对原生日期对象做字符串拆分操作,不仅代码冗余,一旦Airflow默认日期输出格式调整,拆分逻辑会直接失效。

处理dd-mm-yyyy格式的日期字符串

如果拿到的已经是格式化完成的字符串类型日期,两种简单方式提取日份:

  • 按分隔符拆分,直接取对应位置的值,写法最简洁
date_str = "01-04-2022"
day_str = date_str.split("-")[1]
# 输出结果为'04'
  • 先转成日期对象再提取日份,容错性更高,不会因为字符串前后多空格、分隔符异常等小问题直接报错
from datetime import datetime

date_str = "01-04-2022"
date_obj = datetime.strptime(date_str, "%d-%m-%Y")
day_str = date_obj.strftime("%d")

内容的提问来源于stack exchange,提问作者Naveen Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 15:36:24