我怎么能确定我的时区偏移使用VBScript?
Windows操作系统提供了TZ
环境变量。 对于东部标准时间(纽约),它的值是EST5EDT
。 然而,我要寻找的符号整数UTC的偏移量。 (这是-5东部标准时间)。
我怎么能确定我的时区偏移使用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