繁体   English   中英

Powershell 将日期更改为 dd/mm/yyyy hh:ss 格式,然后更改为字符串

[英]Powershell change a date to dd/mm/yyyy hh:ss format and then to string

我有一个包含日期“2020-11-03 17:38:59.0”的字符串字段

我正在尝试将其转换为日期格式 dd/mmm/yyyy hh:mm,然后再转换回字符串。

我正在尝试这个我在互联网上拼凑起来的阅读

    $DateFormatChange = [datetime]::ParseExact('2020-11-03 17:38:59.0', 'yyyy-M-dd HH:mm:ss.f', $null).ToString('dd/mm/yyyy hh:mm')

但它给了我一个奇怪的结果 03/38/2020 05:38

您的格式字符串不符合您的想法。 “hh”是 12 小时格式的小时,“mm”是分钟(不是月)。 查看 .NET 文档自定义日期和格式字符串。

您将看到格式字符串区分大小写,因此如果您不注意这一点,可能会意外得到错误的结果。

一些例子:

"hh" 小时,使用从 01 到 12 的 12 小时制。

“HH” 小时,使用从 00 到 23 的 24 小时制。

"mm" 分钟,从 00 到 59。

“MM” 月份,从 01 到 12。

所以,正确的格式是:

.ToString('dd/MM/yyyy HH:mm')

另外,我建议指定文化。 否则结果也会受到线程文化的影响。 /:被视为格式说明符的一部分,而不是文字字符。 (请参阅注释部分。)例如,对于德国文化,“dd/MM/yyyy”将导致“03.11.2020”,而不是“03/11/2020”。

使用不变文化

.ToString('dd/MM/yyyy HH:mm', [System.Globalization.CultureInfo]::InvariantCulture)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM