Win32_TimeZone 類別

Win32_TimeZoneWMI 類別代表執行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類別具有下列類型的成員:

屬性

Win32_TimeZone類別具有這些屬性。

偏差

資料類型: sint32

存取類型:唯讀

限定詞: MappingStrings (「Win32API|時間結構|TIME_ZONE_INFORMATION|偏差「) , 單位 (」分鐘「)

當地時間翻譯的目前偏差。 偏差是國際標準時間 (UTC) 和當地時間之間的差異。 UTC 與當地時間之間的所有翻譯都是以下列公式為基礎:UTC = 當地時間 - 偏差。 這是必要屬性。

標題

資料類型: 字串

存取類型:唯讀

限定詞: MaxLen (64)

目前 物件的簡短文字描述。

此屬性繼承自 CIM_Setting

DaylightBias

資料類型: sint32

存取類型:唯讀

限定詞: MappingStrings (「Win32API|時間結構|TIME_ZONE_INFORMATION|DaylightBias「) , Units (」minutes「)

在日光節約時間期間發生的當地時間翻譯期間所要使用的偏差值。 如果未提供 DaylightDay 屬性的值,則會忽略這個屬性。 此屬性的值會新增至 Bias 屬性,以形成日光節約期間所使用的偏差。 在大部分時區中,這個屬性的值是 -60。

DaylightDay

資料類型: uint32

存取類型:唯讀

限定詞: MappingStrings (「Win32API|時間結構|TIME_ZONE_INFORMATION|DaylightDate|wDay「)

當從標準時間轉換為日光節約時間時,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「)

從標準時間轉換為日光節約時間的日光節約時間在作業系統上時, 日光 節約時間的分鐘。

範例: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 日)

1212 日 ()

DaylightName

資料類型: 字串

存取類型:唯讀

限定詞: MaxLen (256) 、 MappingStrings (「Win32API|時間結構|TIME_ZONE_INFORMATION|DaylightName「)

日光節約時間生效時的時區。

範例:「EDT」 (東部日光節約時間)

DaylightSecond

資料類型: uint32

存取類型:唯讀

限定詞: MappingStrings (「Win32API|時間結構|TIME_ZONE_INFORMATION|DaylightDate|wSecond「)

當從標準時間轉換為日光節約時間發生在作業系統上時, 日光 節約時間的第二個。

範例:59

DaylightYear

資料類型: uint32

存取類型:唯讀

限定詞: MappingStrings (「Win32API|時間結構|TIME_ZONE_INFORMATION|DaylightDate|wYear「)

日光節約時間生效的年份。 不需要這個屬性。

範例:1997

說明

資料類型: 字串

存取類型:唯讀

目前 物件的文字描述。

此屬性繼承自 CIM_Setting

SettingID

資料類型: 字串

存取類型:唯讀

限定詞: MaxLen (256)

已知目前物件的識別碼。

此屬性繼承自 CIM_Setting

StandardBias

資料類型: uint32

存取類型:唯讀

限定詞: MappingStrings (「Win32API|時間結構|TIME_ZONE_INFORMATION|StandardBias「) , Units (」minutes「)

日光節約時間未生效時要使用的偏差值。 如果未提供 StandardDay 的值,則會忽略這個屬性。 此屬性的值會新增至 Bias 屬性,以在標準時間形成偏差。

範例:0

StandardDay

資料類型: uint32

存取類型:唯讀

限定詞: MappingStrings (「Win32API|時間結構|TIME_ZONE_INFORMATION|StandardDate|wDay「)

從日光節約時間轉換為標準時間時,StandardMonthStandardDayOfWeek會在作業系統上發生。

如果轉換日 (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 日)

1212 日 ()

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 查詢時使用標準日期時間格式,例如 10/18/2002。 相反地,您必須將查詢中使用的任何日期轉換為 UTC 格式。 這需要兩個步驟:1) 您必須判斷時區與 Greenwich 平均時間之間分鐘數) 的位移 (差異,而 2) 您必須將 2002/10/18 轉換成 UTC 值。

判斷 Greenwich 平均時間的位移

當然,WMI 很難使用日期和時間;幸運的是,WMI 至少可讓您輕鬆地判斷時區與 Greenwich 平均時間之間的位移。 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 位移之後,您必須接著將標準日期,例如 10/18/2002 轉換為 UTC 日期。 若要將標準日期轉換成 UTC 日期,您可以使用 VBScript 日期函式,例如 Year、Month 和 Day 來隔離組成 UTC 日期的個別元件。 當您有這些元件的個別值之後,就可以以與任何其他字串值相同的方式串連它們。 UTC 日期會被視為字串,因為 GMT 位移必須附加至結尾。 如果日期顯示為數字,則此值:

20011018113047.000000-480

會錯誤地視為數學方程式, (括弧新增,以便清楚) :

(20011018113047.000000) - (480)

例如,在日期 10/18/2002 中,個別元件如下:

  • 年:2002
  • 月份:10
  • 日:18

腳本需要結合這三個值,字串 「113047.000000」 (代表時間,包括毫秒) ,以及要衍生 UTC 日期的 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 天) 填滿必要位置? 答案是將前置零新增至每個值,因此將 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 位移,然後將指定的目前日期 (在此案例中,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
CIMWin32.mof
DLL
CIMWin32.dll

另請參閱

CIM_Setting

作業系統類別

SWbemDateTime

日期和時間格式

WMI 工作:日期和時間