Powershell 获取格式化的通用日期/时间

Powershell 获取格式化的通用日期/时间,powershell,datetime,utc,Powershell,Datetime,Utc,在PowerShell中,您可以格式化日期以返回当前小时,如下所示: Get-Date -UFormat %H $dateNow = Get-Date $dateNow.ToUniversalTime() 您可以获得UTC格式的日期字符串,如下所示: Get-Date -UFormat %H $dateNow = Get-Date $dateNow.ToUniversalTime() 但是你怎么能得到世界时的当前小时数呢 Get-Date ([datetime]::UtcNow) -UF

在PowerShell中,您可以格式化日期以返回当前小时,如下所示:

Get-Date -UFormat %H
$dateNow = Get-Date
$dateNow.ToUniversalTime()
您可以获得UTC格式的日期字符串,如下所示:

Get-Date -UFormat %H
$dateNow = Get-Date
$dateNow.ToUniversalTime()
但是你怎么能得到世界时的当前小时数呢

Get-Date ([datetime]::UtcNow) -UFormat %H
直到PowerShell 7.0
获取日期
不直接支持基于UTC值格式化当前时间
:格式化选项适用于当前时间的本地表示形式

  • 在PowerShell v7.1+中,您可以使用
    -AsUTC
    开关,从而简化为
    获取日期-AsUTC-UFormat%H

但是,如上所示,您可以将一个
[datetime]
实例作为参数传递给
Get Date
('s位置隐含的
-Date
参数)以重新格式化,而不是让
Get Date
默认为当前(总是本地)时间::UtcNow是以UTC表示的当前时间。

并且
(获取日期).ToUniversalTime()
获取日期([datetime]::UtcNow)
?运行这两个命令会为我返回相同的结果。与另一种方法相比,
ToUniversalTime()
方法基本上多做了一次方法调用吗?@iBobb,结果没有区别。是的,
[datetime]::UtcNow
-对.NET类型的单一属性访问-比对cmdlet的输出调用方法(
Get Date
)更有效,但除非在循环中多次调用,否则在实践中可能不会有什么不同。