![](/img/trans.png)
[英]Convert date format yyyy/MM/dd/hh/mm/ss to datetime object in PowerShell
[英]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.