.net 在powershell中将奇数格式转换为[datetime]

.net 在powershell中将奇数格式转换为[datetime],.net,powershell,datetime,.net,Powershell,Datetime,我正在写一些东西来获取某个程序的安装日期,但我似乎无法将返回的数字转换为奇怪的日期格式yyyyMMdd。我尝试将其强制转换为[datetime],但这会返回下面的错误 这可能是一个简单的解决办法,但我还没有遇到过。有人能帮忙吗 提前谢谢 $test = Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -eq 'exampleProgram'} | select installdate 考虑到你的日期20160628 尝试:

我正在写一些东西来获取某个程序的安装日期,但我似乎无法将返回的数字转换为奇怪的日期格式yyyyMMdd。我尝试将其强制转换为[datetime],但这会返回下面的错误

这可能是一个简单的解决办法,但我还没有遇到过。有人能帮忙吗

提前谢谢

$test = Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -eq 'exampleProgram'} | select installdate
考虑到你的日期20160628 尝试:

你会得到:

Tuesday, June 28, 2016 12:00:00 AM
考虑到你的日期20160628 尝试:

你会得到:

Tuesday, June 28, 2016 12:00:00 AM

您需要使用不变的cultureInfo和自定义格式将日期解析为变量:

$DateTimeVariable = [DateTime]::ParseExact("20160628", "yyyyMMdd", System.Globalization.CultureInfo]::InvariantCulture)


您需要使用不变的cultureInfo和自定义格式将日期解析为变量:

$DateTimeVariable = [DateTime]::ParseExact("20160628", "yyyyMMdd", System.Globalization.CultureInfo]::InvariantCulture)


你差点就赢了我!但出于好奇,为什么要传递$null而不是定义CultureInfo?$null表示文档中的当前区域性:如果提供程序为null,则使用与当前区域性对应的CultureInfo对象。进一步查看MSDN,似乎没有默认值,在幕后它也将其设置为不变量。事实上,我想这比进入[System.Globalization.CultureInfo]要快得多:不变量文化:你几乎没有打败我!但出于好奇,为什么要传递$null而不是定义CultureInfo?$null表示文档中的当前区域性:如果提供程序为null,则使用与当前区域性对应的CultureInfo对象。进一步查看MSDN,似乎没有默认值,在幕后它也将其设置为不变量。事实上,我想这是一种比进入[System.Globalization.CultureInfo]更快的方式:不变量文化:
$DateTimeVariable = [DateTime]::ParseExact($test.installdate, "yyyyMMdd", System.Globalization.CultureInfo]::InvariantCulture)