更新日:2020/08/20
PS C:\> [DateTime]::ParseExact("2020-01-01T13:00:00","yyyy-MM-ddThh:mm:ss", $null)
"3" 個の引数を指定して "ParseExact" を呼び出し中に例外が発生しました: "文字列は有効な DateTime ではありませんでした。"
発生場所 行:1 文字:1
+ [DateTime]::ParseExact("2020-01-01T13:00:00","yyyy-MM-ddThh:mm:ss", $ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : FormatException
原因
format で時間を表す hh を使用していますが、これは 00 〜 12 が範囲となります。よって例のように 13 を当てはめるとエラーとなります。
対処
hh ではなく HH を使用します。これでエラーは出力されることなく String が DateTime に変換されます。
PS C:\> [DateTime]::ParseExact("2020-01-01T13:00:00","yyyy-MM-ddTHH:mm:ss", $null)
2020年1月1日 13:00:00
参考:書式文字列
以下のような文字列を使用します。
yyyy 年を4桁で
yy 年を2桁で
MM 月を2桁で
dd 日を2桁で
HH 時間を2桁で(0〜23)
hh 時間を2桁で(0〜12)
mm 分を2桁で
ss 秒を2桁で
[Powershell FAQ トップへ]
[FAQ CENTER トップ]
本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2018