以24小时格式显示[datetime]对象

时间:2018-03-07 10:11:00

标签: powershell datetime

我有一些代码可以检查有效日期,简单示例:

[datetime]::ParseExact(
    '201809222130',
    'yyyyMMddHHmm',
    [System.Globalization.CultureInfo]::InvariantCulture
)

输出:

Saturday, September 22, 2018, 9:30:00 PM

我正在尝试以24小时格式显示小时,所需的输出:

Saturday, September 22, 2018, 21:30:00 PM

可以使用Get-Date Cmdlet显示24h格式,例如:Get-Date -UFormat %R,但在创建[datetime]对象时我无法使用此格式。

如何显示24小时格式?

3 个答案:

答案 0 :(得分:2)

没有任何理由可以将Get-Date与您的代码创建的[datetime]对象一起使用。例如:

$d = [datetime]::ParseExact(
    '201809222130',
    'yyyyMMddHHmm',
    [System.Globalization.CultureInfo]::InvariantCulture
)

Get-Date $d -UFormat %R

您还可以使用.ToShortTimeString()方法:

$d.ToShortTimeString()

.ToString并指定令牌:

$d.ToString('HH:mm')

答案 1 :(得分:2)

Mark Wragg beat me to it

要添加他的答案,由于您的区域设置,您将获得此输出。在我的机器上,相同的代码返回:

22 September 2018 21:30:00

原因是因为我的区域设置如下所示:

enter image description here

您可以更改全局区域设置,但最好通过代码完成设置。

答案 2 :(得分:2)

PowerShell 答案

使用获取日期格式

HH 是 24 小时

hh 是 12 小时

get-date -format "yyyy-MM-dd HHmmss"

2021-04-12 183340

get-date -format "yyyy-MM-dd hhmmss"

2021-04-12 063340