如何在编译时获取前一日日期?(ADO管道场景)
编译时获取Azure DevOps流水线前一日日期的方法
Azure DevOps编译时表达式不支持直接调用.AddDays()这类.NET方法,但可以用内置的dateadd函数来实现前一日日期的获取,具体步骤如下:
定义编译时变量:在流水线的变量配置中新增一个变量(比如
YesterdayDate),将其值设置为:$[format('{0:ddMMyyyy}', dateadd('day', -1, pipeline.startTime))]这个表达式会在编译时解析,自动计算出流水线启动时间的前一日日期,并格式化为
ddMMyyyy格式。在任务输入中引用变量:后续任务的输入参数里直接使用
$(YesterdayDate)即可,该变量值在编译阶段就已确定,完全满足需求。
补充说明
dateadd是ADO编译时表达式的内置函数,语法为dateadd('<interval>', <offset>, <datetime>),支持的时间间隔包括day、hour、minute等,偏移量可正可负。- 运行时的
##vso[task.setvariable]命令仅能在流水线运行阶段生成变量,无法作用于编译时的任务参数解析,因此不适用该场景。
内容的提问来源于stack exchange,提问作者Yi Zhang
相关产品推荐
相关产品推荐

