2010-03-16 66 views
1

我一直在尝试使用Win32_OperatingSystem类(WMI)获取LastBootUpTime。如何以日期时间格式获取Win32_OperatingSystem.LastBootUpTime

HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1, 
     &pclsObj, &uReturn); 

    if(0 == uReturn) 
    { 
     break; 
    } 

    VARIANT vtProp; 

    // Get the value of the Name property 
    hr = pclsObj->Get(L"LastBootUpTime", 0, &vtProp, 0, 0);   
    VariantClear(&vtProp); 

我想写这个时间到CTime或COleDateTime变量。但是可变vtProp具有BSTR类型,看起来像20100302185848.499768 + 300 同时,任何WMI类的任何日期时间属性具有BSTR类型

如何,我可以把WMI类的日期时间属性的CTime?


但是如何在C++中使用SWbemDateTime.GetVarDate()?在MSDN只是示例脚本此功能

回答

2

你必须做一些分析将其转换。格式为yyyyMMddhhmmss.ffffff + zzz(zzz是以分钟为单位的UTC偏移量)。 SWbemDateTime.GetVarDate() method可以为你做。

1

可以放心地忽略小数点后的任何作为格式YYYYMMDDHHMMSS ..