Powershell (Get Date).ToUniversalTime()转换为字符串,但不更改格式

Powershell (Get Date).ToUniversalTime()转换为字符串,但不更改格式,powershell,Powershell,例如,当您使用(Get-Date)cmdlet时,您会得到如下代码所示的良好格式。但是如果您使用ToString(),则会得到一种格式,例如2019年6月22日下午2:25:34 如何将其转换为字符串,但保持原始格式 (Get-Date).ToString() 6/22/2019 2:25:34 PM vs.... Get-Date Saturday, June 22, 2019 2:25:04 PM 使用通用完整格式说明符(U)和ToString()方法,可以将通用时间作为字符串返回

例如,当您使用(Get-Date)cmdlet时,您会得到如下代码所示的良好格式。但是如果您使用ToString(),则会得到一种格式,例如2019年6月22日下午2:25:34

如何将其转换为字符串,但保持原始格式

(Get-Date).ToString()
6/22/2019 2:25:34 PM

vs....


Get-Date
Saturday, June 22, 2019 2:25:04 PM

使用通用完整格式说明符(
U
)和
ToString()
方法,可以将通用时间作为字符串返回

(Get-Date).ToString('U')
测试日期到字符串的转换和输出类型:

(Get-Date).ToString('U')
Saturday, June 22, 2019 3:11:51 PM
(Get-Date).ToString('U').GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object
这种选择可能不是最优雅的方式,但它可以完成任务

((Get-Date).ToUniversalTime() | Out-String).Trim()

有关格式说明符如何工作的更多信息,请参阅。

您可以将DateTimeFormatInfo传递给ToString方法

[System.Globalization.DateTimeFormatInfo]::new().FullDateTimePattern
其中:

dddd, dd MMMM yyyy HH:mm:ss
完:

结果:

Saturday, 22 June 2019 11:15:37

当您单独使用
Get Date
时,您似乎对看到的内容有一个非常常见的误解。[grin]您将看到该数据类型的powershell显示系统格式。这与实际数据关系不大。
.ToString()
格式化程序使用与显示系统格式化程序不同的格式指令。因此,如果您想获得特定格式,请按照
AdminOfThings
DanielCheng
提及的方式,并为
ToString()
方法提供您想要使用的特定格式。请允许我向新来者提供标准建议:如果答案解决了您的问题,请单击大复选标记接受它(✓) 在它旁边,也可以选择向上投票(向上投票要求至少15个信誉点)。如果您发现其他答案有帮助,请向上投票。接受(您将获得2个信誉点)和向上投票有助于未来的读者。有关更多信息,请参阅。如果您的问题尚未完全回答,请提供反馈或建议。
Saturday, 22 June 2019 11:15:37