繁体   English   中英

使用VBScript确定我的时区偏移量?

[英]Determine my time zone offset using VBScript?

如何使用VBScript确定我的时区偏移量

Windows操作系统提供TZ环境变量。 对于东部标准时间(纽约),其值为EST5EDT 但是,我正在寻找UTC的有符号整数偏移量。 (东部标准时间为-5 。)

这是一个修改后的功能,似乎考虑了夏令时。 (受到这个SO问题的启发。)

Function GetTimeZoneOffset()
    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
        GetTimeZoneOffset = oItem.CurrentTimeZone / 60
        Exit For
    Next
End Function

[不考虑夏令时的原始功能。]

这是我对我的问题的答案( 原始来源 )。

对于东部标准时间(纽约),此VBScript函数将返回-5

Function GetTimeZoneOffset()
    Const sComputer = "."

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

    Dim cTimeZone : Set cTimeZone = _
        oWmiService.ExecQuery("Select * from Win32_TimeZone")

    Dim oTimeZone
    For Each oTimeZone in cTimeZone
        GetTimeZoneOffset = oTimeZone.Bias / 60
        Exit For
    Next
End Function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM