[DateTime] :: ParseExact引发异常

时间:2020-07-27 22:01:06

标签: powershell

$dateParse = [datetime]::ParseExact("5/‎14/‎2008 ‏‎1:57", "M/d/yyyy h:m", $null)

产生

MethodInvocationException: C:\Users\89pmo\source\repos\File2Folder\RenameFile.ps1:9:3
Line |
   9 |          $dateParse = [datetime]::ParseExact("5/‎14/‎2008 ‏‎1:57", "M/ …
     |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Exception calling "ParseExact" with "3" argument(s): "String '5/‎14/‎2008 ‏‎1:57' was not recognized as a valid DateTime."

我也尝试了M/d/yyyy h:mmM/dd/yyyy h:mM/dd/yyyy h:mm的尝试。

1 个答案:

答案 0 :(得分:1)

将代码复制并粘贴到控制台中时,我注意到额外的不可读字符(无论如何都是ASCII)。一旦删除了这些多余的字符,原始的解析就可以工作。

# Original display in console
$dateParse = [datetime]::ParseExact("5/?14/?2008 ??1:57", "M/d/yyyy h:m", $null)
# This worked
$dateParse = [datetime]::ParseExact("5/14/2008 1:57", "M/d/yyyy h:m", $null)

关于及时包含AMPM,您需要坚持使用h(12小时格式的变体)达几个小时。