如何将变量中保存的字符串日期转换为日期时间格式
变量$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