PowerShell中的这个ParseExact代码有什么问题

时间:2013-07-30 07:19:33

标签: datetime powershell

我使用以下脚本......

$x = (Get-Date).ToString()
$x   #Yields 7/30/2013 12:00:10 PM
$formats = "M/dd/yyyy h:m:s tt"
$y = [datetime]::ParseExact($x, $formats, [System.Globalization.CultureInfo]::InvariantCulture, [System.Globalization.DateTimeStyles]::None)
$y.ToString() #Yields 7/30/2013 12:00:10 PM

这符合预期。但是,我需要在$格式中使用多格式字符串。我将这种$格式更改为......

的那一刻
$formats = "M/dd/yyyy h:m:s tt", "MM/dd/yyyy h:m:s tt"

...这个脚本失败了。事实上,我尝试了两次相同的格式,甚至失败了。如果我正确理解documentation,“字符串表示的格式必须至少与指定的格式之一匹配,否则抛出异常”。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

没关系......我找到了解决方案。我错过了明确的字符串转换: - (

$formats作业应为

$formats = [string[]]("M/d/yyyy h:m:s tt","M/dd/yyyy h:m:s tt","MM/d/yyyy h:m:s tt","MM/dd/yyyy h:m:s tt")

博客here