如何通过命令提示符/powershell 更改日期/时间格式?

mrj*_*per 4 windows command-line windows-10

我正在尝试尽可能自动化我的 PC 设置,我想知道是否可以通过命令行更改日期/时间格式。

如果是,我想知道命令。

Bob*_*Bob 6

日期/时间格式被编码为区域的一部分。您可以通过 PowerShell Set-Culturecmdlet从 CLI 进行设置。这是International自 Windows 8/Server 2012 起可用的模块的一部分。您基本上是在寻找等效的 GUI 控制面板区域小程序(可以用 显示control /name Microsoft.RegionAndLanguage)。


例子

对于不耐烦的人,基本的 PowerShell 命令是:

$culture = Get-Culture
$culture.DateTimeFormat.ShortDatePattern = 'd/MM/yyyy'
Set-Culture $culture
Run Code Online (Sandbox Code Playgroud)

我在底部列出了一些您可能希望修改的其他日期/时间模式。


细节

首先,如果您使用的是 Windows 8,则需要导入模块。这在 Windows 10 上不是必需的。

Import-Module International
Run Code Online (Sandbox Code Playgroud)

现在,如果你想改变你的整个区域,你可以在一个命令中完成,例如:

Set-Culture 'en-AU'
Run Code Online (Sandbox Code Playgroud)

可以在此处使用任何有效的BCP-47标签。请注意,这也会更改其他与区域相关的设置,例如小数点分隔符。

这是我大部分时间推荐的方法,除非您有特殊需求。


如果您想更具体地控制日期/时间格式,您需要构建自己的CultureInfo对象或采用当前文化并对其进行修改:

$culture = Get-Culture
$culture.DateTimeFormat.ShortDatePattern = 'd/MM/yyyy'
Set-Culture $culture
Run Code Online (Sandbox Code Playgroud)

相关日期/时间属性

您只需运行$culture.DateTimeFormat(或Get-Culture.DateTimeFormat)即可查看现有选项的列表。您可能想要修改的是:

FullDateTimePattern
LongDatePattern
LongTimePattern
ShortDatePattern
ShortTimePattern
Run Code Online (Sandbox Code Playgroud)

我建议不要接触 RFC1123 模式和可排序模式。