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

Azure DevOps YAML 给获取的当前时间加12小时的正确语法是什么

问题结论

你当前的写法是错误的,无法得到预期结果,有两个核心问题:

  • Azure DevOps的YAML顶层variables块不支持直接执行PowerShell命令,你写的$(Get-Date -Format "yyyy-MM-dd HH:mm:ss")会被识别为普通字符串,而非执行命令后的时间结果
  • 就算CurrentTime成功拿到了时间值,也是格式化后的字符串类型,没有addHours方法,无法直接调用该方法做时间运算
正确实现语法

你需要通过PowerShell步骤生成时间值,再设置为Azure DevOps管道变量,后续步骤就可以直接引用这两个变量:

jobs:
- job: CalculateTime
  steps:
  - task: PowerShell@2
    inputs:
      targetType: 'inline'
      script: |
        # 生成DateTime对象,避免字符串转义问题
        $currentTime = Get-Date
        $startTime = $currentTime.AddHours(12)
        # 格式化后输出为管道变量,作用域为当前作业所有后续步骤
        Write-Host "##vso[task.setvariable variable=CurrentTime]$($currentTime.ToString('yyyy-MM-dd HH:mm:ss'))"
        Write-Host "##vso[task.setvariable variable=StartTime]$($startTime.ToString('yyyy-MM-dd HH:mm:ss'))"
  # 后续步骤可直接引用变量
  - script: echo 当前时间是 $(CurrentTime),加12小时后的时间是 $(StartTime)

如果你需要跨作业使用这两个变量,给变量添加isOutput=true标识后按跨作业变量规则引用即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:42:03