解析日期&#t;'下午失败了

时间:2017-07-12 02:28:02

标签: powershell

ParseExact()按此AM时间戳正常工作。然而,它在PM上失败了。

PS C:\Users\pwatson> [DateTime]::ParseExact('11/24/2017 05:12:44.123 AM', 'M/dd/yyyy HH:mm:ss.fff tt', $null)

Friday, November 24, 2017 05:12:44

PS C:\Users\pwatson> [DateTime]::ParseExact('11/24/2017 05:12:44.123 PM', 'M/dd/yyyy HH:mm:ss.fff tt', $null)
Exception calling "ParseExact" with "3" argument(s): "String was not recognized as a valid DateTime."
At line:1 char:1
+ [DateTime]::ParseExact('11/24/2017 05:12:44.123 PM', 'M/dd/yyyy HH:mm ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : FormatException

1 个答案:

答案 0 :(得分:1)

您需要使用格式代码hh而不是HHhh是12小时制。 HH是24小时制。它适用于上午时间,因为上午5:12是一个有效时间,但不适用于PM时间05:25 pm无效,因为05被解释为24小时时钟凌晨5点,因此与PM不兼容。

[DateTime]::ParseExact('11/24/2017 05:12:44.123 AM', 'M/dd/yyyy hh:mm:ss.fff tt', $null)
[DateTime]::ParseExact('11/24/2017 05:12:44.123 PM', 'M/dd/yyyy hh:mm:ss.fff tt', $null)

返回:

24 November 2017 05:12:44
24 November 2017 17:12:44