【问题标题】:How get Win32_OperatingSystem.LastBootUpTime in datetime format如何以日期时间格式获取 Win32_OperatingSystem.LastBootUpTime
【发布时间】:2010-03-16 09:27:04
【问题描述】:

我一直在尝试使用 Win32_OperatingSystem 类 (WMI) 获取 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 类的 datetime 属性放入 CTime?


但是如何在 C++ 中使用 SWbemDateTime.GetVarDate() 呢?在 MSDN 中只是此函数的脚本示例

【问题讨论】:

    标签: c++ wmi


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以放心地忽略小数点后的任何内容,格式为 yyyymmddhhmmss..

      【讨论】:

        猜你喜欢
        • 2020-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-12
        • 1970-01-01
        • 2019-12-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多