Win32_TimeZone 클래스
Win32_TimeZoneWMI 클래스는 Windows를 실행하는 컴퓨터 시스템의 표준 시간대 정보를 나타내며, 여기에는 일광 절약 시간제로 전환하는 데 필요한 변경 내용이 포함됩니다.
다음 구문은 MOF(Managed Object Format) 코드를 단순화한 것으로 상속된 속성이 모두 포함되어 있습니다. 속성 및 메서드는 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 클래스에는 다음과 같은 유형의 멤버가 있습니다.
속성
Win32_TimeZone 클래스에는 이러한 속성이 있습니다.
-
바이어스
-
-
데이터 형식: sint32
-
액세스 형식: 읽기 전용
-
한정자: MappingStrings ("Win32API| 시간 구조| TIME_ZONE_INFORMATION| Bias"), 단위 ("분")
현지 시간 번역에 대한 현재 바이어스입니다. 바이어스는 UTC(협정 세계시)와 현지 시간의 차이입니다. UTC와 현지 시간 간의 모든 번역은 UTC = 현지 시간 - 바이어스 수식을 기반으로 합니다. 이 속성은 필수입니다.
-
-
캡션
-
-
데이터 형식: 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")
이 운영 체제에서 표준 시간에서 일광 절약 시간으로의 전환이 발생하는 DaylightMonth의 DaylightDayOfWeek입니다.
예: 전환일(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")
운영 체제에서 표준 시간에서 일광 절약 시간으로의 전환이 발생하는 DaylightHour 의 분입니다.
예: 59
DaylightMonth
-
데이터 형식: uint32
-
액세스 형식: 읽기 전용
-
한정자: MappingStrings ("Win32API| 시간 구조| TIME_ZONE_INFORMATION| DaylightDate|wMonth")
운영 체제에서 표준 시간에서 일광 절약 시간제로 전환되는 월입니다.
1월 (1)
2월 (2일)
3월 (3일)
4월 (4일)
5월 (5일)
6월 (6일)
7월 (7일)
8월 (8일)
9월 (9일)
10월 (10일)
11월 (11일)
12월 (12일)
DaylightName
-
데이터 형식: 문자열
-
액세스 형식: 읽기 전용
-
한정자: 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
설명
-
데이터 형식: 문자열
-
액세스 형식: 읽기 전용
현재 개체에 대한 텍스트 설명입니다.
이 속성은 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")
운영 체제에서 일광 절약 시간에서 표준 시간으로 전환되는 경우 StandardMonth의 StandardDayOfWeek입니다.
전환일(StandardDayOfWeek)이 일요일에 발생하는 경우 값 "1"은 StandardMonth의 첫 번째 일요일을 나타내고 , "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")
운영 체제에서 일광 절약 시간에서 표준 시간으로의 전환이 발생하는 StandardDay 의 분입니다.
예: 59
StandardMonth
-
데이터 형식: uint32
-
액세스 형식: 읽기 전용
-
한정자: MappingStrings ("Win32API| 시간 구조| TIME_ZONE_INFORMATION| StandardDate|wMonth")
운영 체제에서 일광 절약 시간에서 표준 시간으로의 전환이 발생하는 월입니다.
1월 (1)
2월 (2)
3월 (3)
4월 (4)
5월 (5)
6월 (6일)
7월 (7)
8월 (8)
9월 (9)
10월 (10일)
11월 (11일)
12월 (12일)
StandardName
-
데이터 형식: 문자열
-
액세스 형식: 읽기 전용
-
한정자: 키, MaxLen (256), MappingStrings ("Win32API| 시간 구조| TIME_ZONE_INFORMATION| StandardName")
표준 시간이 적용될 때 표시되는 표준 시간대의 이름입니다.
예: "EST"(동부 표준시)
StandardSecond
-
데이터 형식: uint32
-
액세스 형식: 읽기 전용
-
한정자: MappingStrings ("Win32API| 시간 구조| TIME_ZONE_INFORMATION| StandardDate|wSecond")
운영 체제에서 일광 절약 시간에서 표준 시간으로의 전환이 발생하는 경우 StandardMinute 의 두 번째입니다.
예: 59
StandardYear
-
데이터 형식: uint32
-
액세스 형식: 읽기 전용
-
한정자: MappingStrings ("Win32API| 시간 구조| TIME_ZONE_INFORMATION| StandardDate|wYear")
표준 시간이 적용되는 연도입니다. 이 속성은 필요하지 않습니다.
예: 1997
설명
Win32_TimeZone 클래스는 CIM_Setting 파생됩니다.
WMI 쿼리를 작성할 때는 표준 날짜-시간 형식(예: 2002년 10월 18일)을 사용할 수 없습니다. 대신 쿼리에 사용된 날짜를 UTC 형식으로 변환해야 합니다. 이를 위해서는 두 단계가 필요합니다. 1) 표준 시간대와 그리니치 평균 시간 사이의 오프셋(분 단위 차이)과 2) 10/18/2002를 UTC 값으로 변환해야 합니다.
그리니치 평균 시간의 오프셋 결정
WMI는 날짜와 시간을 사용하는 것을 어렵게 만듭니다. 다행히 WMI를 사용하면 적어도 표준 시간대와 그리니치 평균 시간 간의 오프셋을 쉽게 확인할 수 있습니다. WMI 클래스 Win32_TimeZone GMT 오프셋을 반환하는 속성인 Bias를 포함합니다.
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 오프셋을 확인한 후 2002년 10월 18일과 같은 표준 날짜를 UTC 날짜로 변환해야 합니다. 표준 날짜를 UTC 날짜로 변환하려면 Year, Month 및 Day와 같은 VBScript 날짜 함수를 사용하여 UTC 날짜를 구성하는 개별 구성 요소를 격리할 수 있습니다. 이러한 구성 요소에 대한 개별 값이 있으면 다른 문자열 값과 동일한 방식으로 연결할 수 있습니다. UTC 날짜는 끝에 GMT 오프셋을 추가해야 하므로 문자열로 처리됩니다. 날짜가 숫자로 표시된 경우 이 값은 다음과 같습니다.
20011018113047.000000-480
수학 방정식(명확성을 위해 추가된 괄호)으로 잘못 처리됩니다.
(20011018113047.000000) - (480)
예를 들어 2002년 10월 18일 날짜의 개별 구성 요소는 다음과 같습니다.
- 연도: 2002년
- 월: 10
- 일: 18
스크립트는 UTC 날짜를 파생하기 위해 "113047.0000000" 문자열(시간(밀리초 포함) 및 GMT 오프셋이라는 세 가지 값을 결합해야 합니다. 예를 들어(명확성을 위해 괄호가 다시 추가됨):
(2002) & (10) & (18) & (113047.000000) & (-480)
참고
VBScript 함수 Hour, Minute 및 Second를 사용하여 UTC 날짜의 시간 부분을 변환할 수 있습니다. 따라서 오전 11시 30분 47분과 같은 시간은 113047 변환됩니다.
한 가지 복잡한 요소가 있습니다. 월은 문자열에서 5 및 6 위치를 차지해야 합니다. 이날은 7위와 8위를 차지해야 합니다. 10개월과 18일차에는 아무런 문제가 없습니다. 하지만 필요한 직책을 채우려면 7월 5일(7개월, 5일차)을 어떻게 받을 수 있을까요? 대답은 각 값에 선행 0을 추가하여 7에서 07로, 5에서 05로 변경하는 것입니다.
이렇게 하려면 VBScript Len 함수를 사용하여 월과 날짜의 길이(문자 수)를 검사. 길이가 1이면(문자가 하나만 있음) 앞에 0을 추가합니다. 따라서:
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 오프셋을 샘플링한 다음 지정된 현재 날짜(이 경우 2002년 10월 18일)를 UTC 날짜-시간 형식으로 변환합니다. 날짜가 변환된 후 해당 값은 컴퓨터를 검색하는 데 사용되며 2002년 10월 18일 이후에 만들어진 모든 폴더 목록을 반환합니다.
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 |
|
추가 정보