PowerShell -转换字符串在变量到日期时间格式



如何将变量中保存的字符串日期转换为日期时间格式

变量$stringdate包含字符串'2020-04-10 09:15:30'当我运行下面的命令(1)时,我得到以下错误:

InvalidArgument: Cannot convert value "2020-04-10 09:15:30" to type "System.DateTime"`. 
Error: "String '2020-04-10 09:15:30' was not recognized as a valid DateTime."

如果我用字符串"2020-04-10 09:15:30"而不是变量$stringdate运行命令(2),它不会出错并返回10 April 2020 09:15:30??

#(1)
$date = $stringdate

[datetime]$date
# (2)

$date ="2020-04-10 09:15:30"

[datetime]$date

您已经在问题中写下了问题的原因:您有一个字符串而不是日期时间。这就是你得到错误的原因。您必须将字符串解析为日期时间对象。

可以使用ParseExact。如果你想要的格式是'yyyy-MM-dd HH:mm:ss',试试这个:

$stringDate = "2020-04-10 09:15:30"
$dateTime = [datetime]::ParseExact($stringDate, 'yyyy-MM-dd HH:mm:ss', $null)
echo $dateTime

输出:

Friday, 10. April 2020 09:15:30

更多信息:ParseExact