【问题标题】:(Get-Date).ToUniversalTime() convert to string but not change format(Get-Date).ToUniversalTime() 转换为字符串但不更改格式
【发布时间】:2019-06-23 05:53:24
【问题描述】:

当您使用 (Get-Date) cmdlet 时,您会获得例如下面代码中的一个不错的格式。但是如果你使用 ToString() 你会得到一个格式,例如 6/22/2019 2:25:34 PM

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

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

vs....


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

【问题讨论】:

  • 您似乎对单独使用Get-Date 时所看到的内容有一个非常普遍的误解。 [grin] 您正在看到该数据类型的 powershell 显示系统格式。这与实际的数据关系不大。 .ToString() 格式化程序使用与显示系统格式化程序不同的格式指令。因此,如果您想获得特定格式,请按照 AdminOfThingsDanielCheng 提及并为 ToString() 方法提供您要使用的特定格式。

标签: powershell


【解决方案1】:

将通用完整格式说明符 (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()

有关格式说明符如何工作的更多信息,请参阅Standard Date and Time Format Strings

【讨论】:

    【解决方案2】:

    您可以将 DateTimeFormatInfo 传递给 ToString 方法。

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

    给出:

    dddd, dd MMMM yyyy HH:mm:ss
    

    结束:

    (Get-Date).ToString([System.Globalization.DateTimeFormatInfo]::new().FullDateTimePattern)
    

    结果:

    Saturday, 22 June 2019 11:15:37
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      • 1970-01-01
      • 2011-09-17
      • 2020-03-10
      • 1970-01-01
      • 2019-04-01
      相关资源
      最近更新 更多