Преобразовать значение TimeOfLastReset в дату и время

Я запускаю wmi-запрос, чтобы получить TimeOfLastReset, и я получаю значение, как это 20171024080309.437500+420, как я могу преобразовать это в дату и время

это мой код, чтобы получить TimeOfLastReset в vb.net

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter",,48) 
For Each objItem in colItems 
   Wscript.Echo "-----------------------------------"
   Wscript.Echo "Win32_NetworkAdapter instance"
   Wscript.Echo "-----------------------------------"
   Wscript.Echo "TimeOfLastReset: " & objItem.TimeOfLastReset
Next

1 ответ

Решение

TimeOfLastReset собственность CIM_DATETIME формат.

Вы можете получить доступ ко всем датам и времени Общей информационной модели (CIM) в WMI с помощью одного из двух форматов фиксированной длины, специфичных для WMI и CIM. В сценариях используйте объект SWbemDateTime, чтобы преобразовать их в обычные даты и время.


SWbemDateTime Объект является вспомогательным объектом для анализа и установки значений даты и времени общей информационной модели (CIM).

strR = ""                           ' collect results to a string variable  
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter",,48)

' Create a new datetime object.
Set objDateTime = CreateObject("WbemScripting.SWbemDateTime")
For Each objItem in colItems
   strR = strR & vbNewLine & "-----------------------------------"
   strR = strR & vbNewLine & "Win32_NetworkAdapter instance"
   strR = strR & vbNewLine ' & "-----------------------------------"

   ' The TimeOfLastReset property is a CIM_DATETIME
   strR = strR & "TimeOfLastReset: " & objItem.TimeOfLastReset
   objDateTime.Value = objItem.TimeOfLastReset

   ' Display the date using the VT_DATE format.
   strR = strR & " local=" & CStr( objDateTime.GetVarDate( True ))
   strR = strR & " UTC="   & CStr( objDateTime.GetVarDate( False))
Next
' the only "echo" allows to run the script using `wscript` or `cscript` host 
Wscript.Echo strR

Вывод (усеченный):

==> cscript //NOLOGO D:\VB_scripts\SO\46903451.vbs

-----------------------------------
Win32_NetworkAdapter instance
TimeOfLastReset: 20171024094043.491317+120 local=24/10/2017 09:40:43 UTC=24/10/2017 07:40:43
-----------------------------------
…
Другие вопросы по тегам