Определить смещение часового пояса с помощью VBScript?

Как я могу определить свойсмещение часового пояса с помощьюVBScript?

ОС Windows обеспечиваетTZ переменная окружения. Для Восточного стандартного времени (Нью-Йорк) его значениеEST5EDT, Тем не менее, я ищу смещение целого числа со знаком от UTC. (Это-5 по восточному поясному времени.)

Ответы на вопрос(1)

Решение Вопроса

Вот пересмотренная функция, которая, по-видимому, учитывает переход на летнее время.(Вдохновленныйэтот ТАК вопрос.)

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
 DavidRR05 нояб. 2013 г., 17:38
@Alex - Пожалуйста, дайте мне знать, учитывает ли моя пересмотренная функция летнее время в вашей системе.
 Beems29 мая 2014 г., 20:45
Для тех, кто ищет, этот метод фактически позволит вам точно запрашивать основанные на времени события Event Viewer через WMI. Затем можно выполнить расчет, чтобы учесть запись событий по умолчанию в формате UTC.
 Alex R.05 нояб. 2013 г., 06:56
Это неТ, кажется, объяснить DST?

Ваш ответ на вопрос