Класс Win32_TimeZone
Класс WMIWin32_TimeZone представляет сведения о часовом поясе для компьютерной системы под управлением Windows, включая изменения, необходимые для перехода на летнее время.
Следующий пример синтаксиса — упрощенный MOF-код, который включает все наследуемые свойства. Свойства и методы находятся в алфавитном порядке, а не в порядке MOF.
Синтаксис
[Dynamic, Provider("CIMWin32"), UUID("{8502C4EC-5FBB-11D2-AAC1-006008C78BC7}"), AMENDMENT]
class Win32_TimeZone : CIM_Setting
{
string Caption;
string Description;
string SettingID;
sint32 Bias;
sint32 DaylightBias;
uint32 DaylightDay;
uint8 DaylightDayOfWeek;
uint32 DaylightHour;
uint32 DaylightMillisecond;
uint32 DaylightMinute;
uint32 DaylightMonth;
string DaylightName;
uint32 DaylightSecond;
uint32 DaylightYear;
uint32 StandardBias;
uint32 StandardDay;
uint8 StandardDayOfWeek;
uint32 StandardHour;
uint32 StandardMillisecond;
uint32 StandardMinute;
uint32 StandardMonth;
string StandardName;
uint32 StandardSecond;
uint32 StandardYear;
};
Члены
Класс Win32_TimeZone имеет следующие типы членов:
Элемент Property
Класс Win32_TimeZone имеет следующие свойства.
-
Смещение
-
-
Тип данных: sint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| Смещение"), единицы ("минуты")
Текущее смещение для перевода по местному времени. Смещение — это разница между временем в формате UTC и местным временем. Все переводы между UTC и местным временем основаны на следующей формуле: UTC = местное время - смещение. Это свойство обязательно.
-
-
Caption
-
-
Тип данных: string
-
Тип доступа: только для чтения
-
Квалификаторы: MaxLen (64)
Краткое текстовое описание текущего объекта.
Это свойство наследуется от CIM_Setting.
-
-
DaylightBias
-
-
Тип данных: sint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| DaylightBias"), единицы ("минуты")
Значение смещения, используемое во время перевода локального времени, которое выполняется в летнее время. Это свойство игнорируется, если не указано значение для свойства DaylightDay . Значение этого свойства добавляется к свойству Bias для формирования смещения, используемого в дневное время. В большинстве часовых поясов значение этого свойства равно -60.
-
-
DaylightDay
-
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| DaylightDate|wDay")
DaylightDayOfWeekdaylightMonth , когда в этой операционной системе происходит переход от стандартного времени к летнему времени.
Пример. Если переходный день (DaylightDayOfWeek) приходится на воскресенье, то значение "1" указывает первое воскресенье daylightMonth, "2" — второе воскресенье и т. д. Значение "5" указывает последний DaylightDayOfWeek в месяце.
-
-
DaylightDayOfWeek
-
-
Тип данных: uint8
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| DaylightDate|wDayOfWeek")
День недели, когда в операционной системе происходит переход от стандартного времени к летнему времени.
-
-
Воскресенье (0)
-
Понедельник (1)
-
Вторник (2)
-
Среда (3)
-
Четверг (4)
-
Пятница (5)
-
Суббота (6)
Пример: 1
DaylightHour
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| DaylightDate|wHour")
Час дня, когда в операционной системе происходит переход от стандартного времени к летнему времени.
Пример: 2
DaylightMillisecond
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| DaylightDate|wMilliseconds")
Миллисекунды daylightSecond , когда переход от стандартного времени к летнему времени происходит в операционной системе.
DaylightMinute
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| DaylightDate|wMinute")
Минута дневного светаЧас, когда переход от стандартного времени к летнему времени происходит в операционной системе.
Пример: 59
DaylightMonth
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| DaylightDate|wMonth")
Месяц, когда в операционной системе происходит переход от стандартного времени к летнему времени.
Январь (1)
Февраль (2)
Март (3)
Апрель (4)
Май (5)
Июнь (6)
Июль (7)
Август (8)
Сентябрь (9)
Октябрь (10)
Ноябрь (11)
Декабрь (12)
DaylightName
-
Тип данных: string
-
Тип доступа: только для чтения
-
Квалификаторы: MaxLen (256), MappingStrings (Win32API| Временные структуры| TIME_ZONE_INFORMATION| DaylightName")
Часовой пояс, представленный при переходе на летнее время.
Пример: "EDT" (восточное летнее время)
DaylightSecond
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| DaylightDate|wSecond")
Секунда daylightMinute , когда переход от стандартного времени к летнему времени происходит в операционной системе.
Пример: 59
DaylightYear
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| DaylightDate|wYear")
Год действия летнего времени. Это свойство не является обязательным.
Пример: 1997
Описание
-
Тип данных: string
-
Тип доступа: только для чтения
Текстовое описание текущего объекта.
Это свойство наследуется от CIM_Setting.
SettingID
-
Тип данных: string
-
Тип доступа: только для чтения
-
Квалификаторы: MaxLen (256)
Идентификатор, по которому известен текущий объект.
Это свойство наследуется от CIM_Setting.
StandardBias
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| StandardBias"), единицы ("минуты")
Значение смещения, используемое, если переход на летнее время не действует. Это свойство игнорируется, если значение для StandardDay не указано. Значение этого свойства добавляется к свойству Bias для формирования смещения в течение стандартного времени.
Пример: 0
StandardDay
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| StandardDate|wDay")
StandardDayOfWeekстандартного месяца , когда переход с летнего времени на стандартное время происходит в операционной системе.
Если переходный день (StandardDayOfWeek) приходится на воскресенье, то значение "1" означает первое воскресенье стандартного месяца, "2" — второе воскресенье и т. д. Значение "5" указывает последний StandardDayOfWeek в месяце.
StandardDayOfWeek
-
Тип данных: uint8
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| StandardDate|wDayOfWeek")
День недели, когда в операционной системе происходит переход от летнего времени к стандартному времени.
Воскресенье (0)
Понедельник (1)
Вторник (2)
Среда (3)
Четверг (4)
Пятница (5)
Суббота (6)
StandardHour
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| StandardDate|wHour")
Час дня, когда в операционной системе происходит переход от летнего времени к стандартному времени.
Пример: 11
StandardMillisecond
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| StandardDate|wMilliseconds")
Миллисекунды standardSecond , когда переход с летнего времени на стандартное время происходит в операционной системе.
StandardMinute
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| StandardDate|wMinute")
Минута стандартного дня , когда переход с летнего времени на стандартное время происходит в операционной системе.
Пример: 59
Стандартный Месяц
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| StandardDate|wMonth")
Месяц, когда в операционной системе происходит переход от летнего времени к стандартному времени.
Январь (1)
Февраль (2)
Март (3)
Апрель (4)
Май (5)
Июнь (6)
Июль (7)
Август (8)
Сентябрь (9)
Октябрь (10)
Ноябрь (11)
Декабрь (12)
StandardName
-
Тип данных: string
-
Тип доступа: только для чтения
-
Квалификаторы: key, MaxLen (256), MappingStrings ("Win32API| | Временные структуры| TIME_ZONE_INFORMATION| StandardName")
Имя часового пояса, который представляется, когда действует стандартное время.
Пример: "EST" (восточное стандартное время)
StandardSecond
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| StandardDate|wSecond")
Второй стандартныйminute , когда переход с летнего времени на стандартное время происходит в операционной системе.
Пример: 59
StandardYear
-
Тип данных: uint32
-
Тип доступа: только для чтения
-
Квалификаторы: MappingStrings ("Win32API| Временные структуры| TIME_ZONE_INFORMATION| StandardDate|wYear")
Год, когда действует стандартное время. Это свойство не является обязательным.
Пример: 1997
Комментарии
Класс Win32_TimeZone является производным от CIM_Setting.
При написании запросов WMI нельзя использовать стандартные форматы даты и времени, например 18.10.2002. Вместо этого необходимо преобразовать все даты, используемые в запросах, в формат UTC. Для этого требуется два шага: 1) Необходимо определить смещение (разницу в минутах) между часовыми поясами и временем по Гринвичу; 2) необходимо преобразовать значение 18.10.2002 в значение UTC.
Определение смещения от среднего времени по Гринвичу
По общему признанию, WMI затрудняет работу с датами и временем; К счастью, WMI по крайней мере позволяет легко определить смещение между часовыми поясами и средним по Гринвичу временем. Класс WMI Win32_TimeZone включает свойство Bias, которое возвращает смещение GMT.
strComputer = "."
Set objSWbemServices = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colTimeZone = objSWbemServices.ExecQuery _
("SELECT * FROM Win32_TimeZone")
For Each objTimeZone in colTimeZone
Wscript.Echo "Offset: "& objTimeZone.Bias
Next
Преобразование даты в значение UTC
После определения смещения GMT необходимо преобразовать стандартную дату, например 18.10.2002, в формат UTC. Чтобы преобразовать стандартную дату в формат UTC, можно использовать функции даты VBScript, такие как Год, Месяц и День, чтобы изолировать отдельные компоненты, составляющие дату в формате UTC. После получения отдельных значений для этих компонентов их можно сцепить так же, как и любое другое строковое значение. Даты в формате UTC обрабатываются как строки, так как смещение GMT должно быть добавлено к концу. Если дата рассматривалась как число, это значение:
20011018113047.000000-480
Ошибочно будет рассматриваться как математическое уравнение (круглые скобки добавляются для ясности):
(20011018113047.000000) - (480)
Например, в дате 18.10.2002 отдельные компоненты:
- Год: 2002
- Месяц: 10
- День: 18
Скрипту потребуется объединить эти три значения: строку "113047.000000" (представляющую время, включая миллисекунд) и смещение GMT для получения даты в формате UTC. Например, (круглые скобки снова добавлены для ясности):
(2002) & (10) & (18) & (113047.000000) & (-480)
Примечание
Функции VBScript Hour, Minute и Second можно использовать для преобразования временной части даты в формате UTC. Таким образом, время, например 11:30:47 утра, будет преобразовано в 113047.
Существует один осложняющий фактор. Месяц должен занять позиции 5 и 6 в строке; день должен занять позиции 7 и 8. Это не проблема с 10-м месяцем и 18-м днем. Но как получить 5 июля (месяц 7, день 5) для заполнения необходимых позиций? Ответ заключается в том, чтобы добавить начальный нуль к каждому значению, изменив таким образом 7 на 07 и 5 на 05.
Для этого используйте функцию VBScript Len, чтобы проверка длину (количество символов) в месяце и день. Если длина равна 1 (это означает, что имеется только один символ), добавьте ноль в начале. Таким образом:
If Len(dtmMonth) = 1 Then
dtmMonth = "0" & dtmMonth
End If
Примеры
В следующем примере VBScript текущая дата преобразуется в дату в формате UTC.
strComputer = "."
Set objSWbemServices = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colTimeZone = objSWbemServices.ExecQuery _
("SELECT * FROM Win32_TimeZone")
For Each objTimeZone in colTimeZone
strBias = objTimeZone.Bias
Next
dtmCurrentDate = Date
dtmTargetDate = Year(dtmCurrentDate)
dtmMonth = Month(dtmCurrentDate)
If Len(dtmMonth) = 1 Then
dtmMonth = "0" & dtmMonth
End If
dtmTargetDate = dtmTargetDate & dtmMonth
dtmDay = Day(dtmCurrentDate)
If Len(dtmDay) = 1 Then
dtmDay = "0" & dtmDay
End If
dtmTargetDate = dtmTargetDate & dtmDay & "000000.000000"
dtmTargetDate = dtmTargetDate & Cstr(strBias)
Следующий пример VBScript определяет смещение GMT, а затем преобразует указанную текущую дату (в данном случае 18.10.2002) в формат даты и времени в формате UTC. После преобразования даты это значение используется для поиска на компьютере и возвращает список всех папок, созданных после 18.10.2002.
strComputer = "."
Set objSWbemServices = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colTimeZone = objSWbemServices.ExecQuery _
("SELECT * FROM Win32_TimeZone")
For Each objTimeZone in colTimeZone
strBias = objTimeZone.Bias
Next
dtmCurrentDate = "10/18/2002"
dtmTargetDate = Year(dtmCurrentDate)
dtmMonth = Month(dtmCurrentDate)
If Len(dtmMonth) = 1 Then
dtmMonth = "0" & dtmMonth
End If
dtmTargetDate = dtmTargetDate & dtmMonth
dtmDay = Day(dtmCurrentDate)
If Len(dtmDay) = 1 Then
dtmDay = "0" & dtmDay
End If
dtmTargetDate = dtmTargetDate & dtmDay & "000000.000000"
dtmTargetDate = dtmTargetDate & Cstr(strBias)
Set colFolders = objSWbemServices.ExecQuery _
("SELECT * FROM Win32_Directory WHERE CreationDate < '" & _
dtmtargetDate & "'")
For Each objFolder in colFolders
Wscript.Echo objFolder.Name
Next
В следующем примере кода VBScript отображаются параметры для экземпляров Win32_TimeZone.
Dim arDayOrWeek(7)
arDayOrWeek(0) = "Sunday"
arDayOrWeek(1) = "Monday"
arDayOrWeek(2) = "Tuesday"
arDayOrWeek(3) = "Wednesday"
arDayOrWeek(4) = "Thursday"
arDayOrWeek(5) = "Friday"
arDayOrWeek(6) = "Saturday"
Dim arMonth(13)
arMonth(1) = "January"
arMonth(2) = "Feburary"
arMonth(3) = "March"
arMonth(4) = "April"
arMonth(5) = "May"
arMonth(6) = "June"
arMonth(7) = "July"
arMonth(8) = "August"
arMonth(9) = "September"
arMonth(10) = "October"
arMonth(11) = "November"
arMonth(12) = "December"
strComputer = "."
wmiQuery = "Select * from Win32_TimeZone"
Set objWMIService = GetObject("winmgmts:\\" & _
strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery(wmiQuery)
For Each objItem in colItems
WScript.Echo "Day of Week setting is: " _
& objItem.dayLightDayOfWeek _
& " which is: " & arDayOrWeek(objItem.DaylightDayOfWeek)
WScript.Echo "Hour: " & objItem.DaylightHour
WScript.Echo "Month: " & objItem.DaylightMonth _
& " which is: " & arMonth(objItem.DaylightMonth )
WScript.Echo "Description: " & objItem.DaylightName
WScript.Echo "The transition from DLS to Standard occurs: "
WScript.Echo "Day of Week setting is: " _
& objItem.standardDayOfWeek _
& " which is: " & arDayOrWeek(objItem.DaylightDayOfWeek)
WScript.Echo "Hour: " & objItem.StandardHour
WScript.Echo "Month: " & objItem.StandardMonth _
& " which is: " & arMonth(objItem.StandardMonth )
WScript.Echo "Description: " & objItem.StandardName
Next
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista |
Минимальная версия сервера |
Windows Server 2008 |
Пространство имен |
Root\CIMV2 |
MOF |
|
DLL |
|
См. также раздел