【发布时间】:2020-04-15 03:43:26
【问题描述】:
当我在 ISE 中运行 Get-Date 时,我得到了我想要的 Wednesday, 15 April 2020 12:38:03 PM。
但是,如果我在 Windows 窗体中运行相同的命令,我会得到不同格式的 04/15/2020 12:38:03。
我在同一台计算机上运行它们,所以它必须是相同的文化/地区。
【问题讨论】:
标签: powershell date time format
当我在 ISE 中运行 Get-Date 时,我得到了我想要的 Wednesday, 15 April 2020 12:38:03 PM。
但是,如果我在 Windows 窗体中运行相同的命令,我会得到不同格式的 04/15/2020 12:38:03。
我在同一台计算机上运行它们,所以它必须是相同的文化/地区。
【问题讨论】:
标签: powershell date time format
-Format 或 -UFormat 自定义您的日期
您可以使用-Format 或-UFormat 参数来强制执行特定的日期布局:
Get-Date -Format "dddd, d MMMM yyyy hh:mm:ss tt"
Get-Date -UFormat "%A, %e %B %Y %r"
只要你使用en-US文化信息,两者都会显示你想要的日期格式:
Wednesday, 15 April 2020 08:09:24 AM
了解更多信息:
如果您想以不同的语言显示日期,您还可以强制执行某种文化信息。请记住,-Format 参数只是ToString() 方法的包装器。因此,您还可以根据需要使用以下行来显示您的日期:
(Get-Date).ToString('dddd, d MMMM yyyy hh:mm:ss tt')
幸运的是,ToString() 方法存在不同的重载。还有一个,将文化信息作为第二个参数。因此,总而言之,您可以将不同的文化信息传递给您的 ToString() 方法以获得不同语言的结果:
$culture = [System.Globalization.CultureInfo]::CreateSpecificCulture('en-US')
(Get-Date).ToString('dddd, d MMMM yyyy hh:mm:ss tt', $culture)
将显示:
Wednesday, 15 April 2020 08:09:24 AM
同时
$culture = [System.Globalization.CultureInfo]::CreateSpecificCulture('de-DE')
(Get-Date).ToString('dddd, d MMMM yyyy hh:mm:ss tt', $culture)
将显示:
Mittwoch, 15 April 2020 08:09:24
在$culture.DateTimeFormat,您还可以找到已经准备好的文化特定模式来格式化您的日期,您可以使用它们而不是自己编写它们:
$culture = [System.Globalization.CultureInfo]::CreateSpecificCulture('en-US')
(Get-Date).ToString($culture.DateTimeFormat.ShortDatePattern, $culture)
将显示:
4/15/2020
同时
$culture = [System.Globalization.CultureInfo]::CreateSpecificCulture('de-DE')
(Get-Date).ToString($culture.DateTimeFormat.ShortDatePattern, $culture)
将显示:
15.04.2020
顺便说一句:您的问题中指定的与您类似的模式是:
$culture = [System.Globalization.CultureInfo]::CreateSpecificCulture('en-US')
(Get-Date).ToString($culture.DateTimeFormat.FullDateTimePattern, $culture)
Wednesday, April 15, 2020 8:09:24 AM
【讨论】: