Powershell 日期转换yyyymmddhhmm+000
我试图通过Powershell从WMI获取SCCM MP的详细信息。 我可以从WMI获取数据,但日期格式不同,我无法转换。他可能缺乏一些知识Powershell 日期转换yyyymmddhhmm+000,powershell,datetime,wmi,Powershell,Datetime,Wmi,我试图通过Powershell从WMI获取SCCM MP的详细信息。 我可以从WMI获取数据,但日期格式不同,我无法转换。他可能缺乏一些知识 $query = Get-WmiObject -Query "SELECT * FROM SMS_MPInformation " -Namespace root\ccm\LocationServices -ComputerName "test_vm" $MP = $query.MP $Sitecode = $query.SiteCode $MPLastR
$query = Get-WmiObject -Query "SELECT * FROM SMS_MPInformation " -Namespace root\ccm\LocationServices -ComputerName "test_vm"
$MP = $query.MP
$Sitecode = $query.SiteCode
$MPLastRequestTime = $query.MPLastRequestTime
$MPLastUpdateTime = $query.MPLastUpdateTime
我得到的输出是好的,但是日期的格式有点不同
$MPLastRequestTime = 20191008000158.927000+000
其实应该是这样的
MPlastrequest时间:2019年10月8日00:01
谁能告诉我如何将其转换为上述格式。WMIExplorer工具能够转换它,所以我知道一定有办法。尝试使用Get-CimInstance-Wmi cmdlet正在被重新定价,CIM应该以更可读的格式返回DateTime 尝试使用Get-CimInstance-Wmi cmdlet正在被重新定价,CIM应该以更可读的格式返回DateTime 除了他有用的回答之外。您可以像这样转换WMI时间戳:
$wmiTime = '20191008000158.927000+000'
$date = [DateTime]::new((([wmi]"").ConvertToDateTime($wmiTime)).Ticks, 'Local')
如果您需要日期为UTC,请执行以下操作:
$wmiTime = '20191008000158.927000+000'
$date = [DateTime]::new((([wmi]"").ConvertToDateTime($wmiTime)).Ticks, 'Local').ToUniversalTime()
后者将输出
2019年10月8日00:01:58
说明:
虽然WMI时间戳是UTC时间,但ConvertToDateTime函数返回本地时间中的日期,但遗憾的是将Kind属性设置为“Unspecified”
当您对其执行ToLocalTime时,该方法会再次添加时区偏移,从而导致错误的时间
由于.Kind属性在DateTime对象上是只读的,因此您需要使用转换后的WMI时间创建一个新的DateTime,以便将其Kind属性设置为“Local”。除了的有用答案之外。您可以像这样转换WMI时间戳:
$wmiTime = '20191008000158.927000+000'
$date = [DateTime]::new((([wmi]"").ConvertToDateTime($wmiTime)).Ticks, 'Local')
如果您需要日期为UTC,请执行以下操作:
$wmiTime = '20191008000158.927000+000'
$date = [DateTime]::new((([wmi]"").ConvertToDateTime($wmiTime)).Ticks, 'Local').ToUniversalTime()
后者将输出
2019年10月8日00:01:58
说明:
虽然WMI时间戳是UTC时间,但ConvertToDateTime函数返回本地时间中的日期,但遗憾的是将Kind属性设置为“Unspecified”
当您对其执行ToLocalTime时,该方法会再次添加时区偏移,从而导致错误的时间
由于.Kind属性在DateTime对象上是只读的,因此您需要使用转换后的WMI时间创建一个新的DateTime,以便将其Kind属性设置为“Local”。谢谢您的回答。我会测试它并让你知道。投票通过了。谢谢你的回答。我会测试它并让你知道。投票通过了。谢谢你的回答。我会测试它并让你知道。投票通过了。谢谢你的回答。我会测试它并让你知道。投票通过。