0

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

$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 中使用多个格式字符串。当我将此 $formats 更改为...

$formats = "M/dd/yyyy h:m:s tt", "MM/dd/yyyy h:m:s tt"

...这个脚本失败了。事实上,我尝试了两次相同的格式,甚至都失败了。如果我正确理解文档,“字符串表示的格式必须与至少一种指定格式完全匹配,否则会引发异常”。

我究竟做错了什么?

4

1 回答 1

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")

在这里写博客。

于 2013-07-30T08:24:42.637 回答