我使用以下脚本......
$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,“字符串表示的格式必须至少与指定的格式之一匹配,否则抛出异常”。
我做错了什么?
答案 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。