使用Vista / Win7上的WMI检查夏令时

时间:2009-11-25 15:36:19

标签: windows wmi dst

如何确定我所使用的计算机是否具有夏令时? (最好使用WMI)

根据this article at TechNet,我可以查询SELECT DaylightInEffect FROM Win32_ComputerSystem,但Vista或Win7不支持属性DaylightInEffect。由于我的程序将在各种系统(XP,Vista,7)上运行,我希望通过一些可移植的方式来查找。

2 个答案:

答案 0 :(得分:3)

文档支持的操作系统列表不准确,在我尝试时在Win7上运行正常。我想不出任何其他操作系统不支持它的任何原因,很容易找到Win32 API(GetTimeZoneInformation)。

您可以使用WmiCodeCreator进行快速检查。

答案 1 :(得分:2)

这是一个布尔函数,使用问题中引用的WMI查询实现。

(相关:How Can I Determine My Time Zone Offset Using VBScript?

Function IsDaylightInEffect()
    Const sComputer = "."

    Dim oWmiService : Set oWmiService = _
        GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _
                  & sComputer & "\root\cimv2")

    Set cItems = oWmiService.ExecQuery("SELECT * FROM Win32_ComputerSystem")

    For Each oItem In cItems
        IsDaylightInEffect = oItem.DaylightInEffect
        Exit For
    Next
End Function