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

如何在YAML流水线中声明当月最后一天的变量?

Azure DevOps YAML流水线获取当月最后一天变量的正确写法

你之前的写法出错是因为format()函数返回的是字符串类型,不是DateTime对象,自然没法直接调用AddMonths()、AddDays()这些日期方法。

要实现获取当月最后一天,得先对日期对象做运算,再格式化输出。给你两种可行的写法:

方法一:基于当月第一天计算

先构造当月第一天的DateTime对象,加1个月后再减1天,最后格式化:

pool:
  vmImage: 'windows-latest'
variables:
  startOfMonth: $[format('{0:yyyy-MM}-01', pipeline.startTime)]
  endOfMonth: $[format('{0:yyyy-MM-dd}', DateTime.Parse(variables.startOfMonth).AddMonths(1).AddDays(-1))]

方法二:直接基于流水线启动时间计算

直接从pipeline.startTime(DateTime对象)中提取年、月,构造当月第一天,再做日期运算:

pool:
  vmImage: 'windows-latest'
variables:
  endOfMonth: $[format('{0:yyyy-MM-dd}', new DateTime(pipeline.startTime.Year, pipeline.startTime.Month, 1).AddMonths(1).AddDays(-1))]

两种写法都能准确得到当月最后一天,比如2024年5月的最后一天会返回2024-05-31,2月会自动识别平/闰年返回对应日期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 21:54:57