我正在尝试使用 Powershell 更改我的环境,以便时间以 24 小时格式显示,无需 AM/PM。
这就是我所做的:
$culture = get-culture
$culture.DateTimeFormat.ShortTimePattern = 'HH:mm'
$culture.DateTimeFormat.pmDesignator = ''
set-culture $culture
Run Code Online (Sandbox Code Playgroud)
这消除了 AM/PM 指示符,但仍显示 0..12 范围内的小时,而不是预期的 0..23 范围内的小时。那么我需要做什么才能以 24 小时格式显示时间呢?
TL;DR:系统上用户区域设置的短时间格式存储在注册表项的HKCU:\Control Panel\International值中sShortTime。您可以通过以下 PowerShell 命令编辑该值的数据:
Set-ItemProperty -Path 'HKCU:\Control Panel\International' -Name 'sShortTime' -Value 'HH:mm'
Run Code Online (Sandbox Code Playgroud)
用户界面更新后(例如一分钟过去),更改将可见。您可能也想更改sTimeFormat,因为它与LongTimePattern属性相对应。
Set-Culture旨在设置/加载该类的预定义对象CultureInfo。你通常这样使用它:
Set-Culture -CultureInfo 'en-US'
Run Code Online (Sandbox Code Playgroud)
如果检索CultureInfo对象然后更改其属性,则不会创建新CultureInfo对象。特别是它仍然具有预定义对象的名称CultureInfo(例如en-US)。如果您将这样的修改CultureInfo对象与 一起使用Set-Culture,我认为该行为是未定义的(我不确定)。您可以看到它接受覆盖LongTimePattern属性,但不接受ShortTimePattern属性。我不知道这是一个错误还是只是未定义。
不过,您可以定义自己的自定义CultureInfo对象,从预定义对象派生它,然后在您的系统上使用它。您可以在这里阅读更多相关内容。此处显示了 C# 中的示例实现。您可以将其转换为 PowerShell,如下所示(使用管理权限执行它):
Add-Type -AssemblyName sysglobl
$carib = New-Object -TypeName System.Globalization.CultureAndRegionInfoBuilder -ArgumentList @('en-US-Custom', [System.Globalization.CultureAndRegionModifiers]::None)
$carib.LoadDataFromCultureInfo([System.Globalization.CultureInfo]::GetCultureInfo('en-US'))
$carib.LoadDataFromRegionInfo((New-Object -TypeName System.Globalization.RegionInfo -ArgumentList 'en-US'))
$carib.GregorianDateTimeFormat.LongTimePattern = 'HH:mm:ss'
$carib.GregorianDateTimeFormat.ShortTimePattern = 'HH:mm'
$carib.Register()
Run Code Online (Sandbox Code Playgroud)
之后,您的系统上将有一个CultureInfo名为的自定义对象,您可以使用以下命令对其进行设置:en-US-Custom
Set-Culture -CultureInfo 'en-US-Custom'
Run Code Online (Sandbox Code Playgroud)
如果你想删除你的自定义CultureInfo对象,你可以这样做:
Add-Type -AssemblyName sysglobl
[System.Globalization.CultureAndRegionInfoBuilder]::Unregister('en-US-Custom')
Run Code Online (Sandbox Code Playgroud)
现在您可以决定是否要定义自定义CultureInfo对象或仅更改注册表中的一两个值。对于您的情况,我建议更改注册表,因为这正是当您更改 GUI 中的短时间模式时所发生的情况:
| 归档时间: |
|
| 查看次数: |
3079 次 |
| 最近记录: |