首页 > 解决方案 > GetDate 负 30 分钟并以 UTC 显示

问题描述

我正在尝试以 -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”

请就此给我建议。

标签: powershellpowershell-2.0

解决方案


您显示的不是 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切换到,大概在 7.1 中;Get-Date请参阅此 GitHub 拉取请求


推荐阅读