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"

...このスクリプトは失敗します。実際のところ、同じフォーマットを 2 回試しましたが、それでも失敗しました。ドキュメントを正しく理解していれば、「文字列表現の形式は、指定された形式の少なくとも 1 つと正確に一致する必要があります。そうしないと、例外がスローされます」。

私は何を間違っていますか?

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 に答える