我正在尝试用-30分钟显示当前日期。并以UTC格式获取输出。

以下是我尝试过的事情。

Clear-Host
$dte = Get-Date
$Minusthirty= $dte.AddMinutes(-30)
Write-Output "This is CurrentDate: " $dte
Write-Output "This is Minus30: " $Minusthirty

输出值
2020年4月1日,星期三,凌晨2:38:43

我想将输出显示为“2020-04-01T00:30”

请给我建议。

最佳答案

您显示的不是UTC格式-您所需的输出格式具有时间成分,但没有UTC偏移量(-00:00)或UTC指示符(Z)。

要以问题所示的格式格式化本地时间减去30分钟,请执行以下操作:

[datetime]::Now.AddMinutes(-30).Tostring('yyyy-MM-ddTHH:mm')

以相同的格式表示当前UTC时间点减去30分钟:
[datetime]::UtcNow.AddMinutes(-30).Tostring('yyyy-MM-ddTHH:mm')

注意:
  • [datetime]::Now(Get-Date)相同。
  • 从PowerShell 7.0开始,没有直接等效于[datetime]::UtcNow(缺少繁琐的(Get-Date).ToUniversalTime())的方法,但是即将到-AsUtc切换到Get-Date了,大概是在7.1中。参见this GitHub pull request
  • 关于powershell - 减去30分钟即可获取日期并以UTC显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60960351/

    10-12 12:18
    查看更多