PowerShell:有和没有字符串插值的不同结果(使用 Get-Date -DisplayHint Time)

PowerShell: different result with and without string interpolation (with Get-Date -DisplayHint Time)

当我运行Get-Date -DisplayHint Time时,输出为10:30:19.

当我运行"$(Get-Date -DisplayHint Time)"时,输出为02/15/2018 10:30:15

为什么不同?

PSVersion = 5.1.16299.98

因为 -DisplayHint 是一个显示提示。该 cmdlet 的结果仍然是一个 DateTime 对象。在字符串中,表达式不算作 "displayed",您会得到...其他内容。 (奇怪的是,这不是简单 .ToString() 的结果)。如果你想在字符串中使用依赖于语言环境的长时间格式,请使用 "$(Get-Date -Format 'T')"(这显然是 -DisplayHint Time 会做的,尽管没有明确记录)。