Win32_TimeZone-Klasse

Die Win32_TimeZoneWMI-Klasse stellt die Zeitzoneninformationen für ein Computersystem unter Windows dar, einschließlich der Änderungen, die für den Übergang zur Sommerzeit erforderlich sind.

Die folgende Syntax wurde aus MOF-Code (Managed Object Format, verwaltetes Objektformat) vereinfacht und enthält alle geerbten Eigenschaften. Eigenschaften und Methoden sind in alphabetischer Reihenfolge und nicht in MOF-Reihenfolge angeordnet.

Syntax

[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;
};

Member

Die Win32_TimeZone-Klasse verfügt über folgende Membertypen:

Eigenschaften

Die Win32_TimeZone-Klasse verfügt über diese Eigenschaften.

Verzerrung (Bias)

Datentyp: sint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| Bias"), Einheiten ("Minuten")

Aktuelle Verzerrung für die Ortszeitübersetzung. Die Verzerrung ist der Unterschied zwischen koordinierter Weltzeit (UTC) und Ortszeit. Alle Übersetzungen zwischen UTC und Ortszeit basieren auf der folgenden Formel: UTC = Ortszeit – Bias. Diese Eigenschaft ist obligatorisch.

Caption

Datentyp: string

Zugriffstyp: Schreibgeschützt

Qualifizierer: MaxLen (64)

Kurze Textbeschreibung des aktuellen Objekts.

Diese Eigenschaft wird von CIM_Setting geerbt.

DaylightBias

Datentyp: sint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| DaylightBias"), Einheiten ("Minuten")

Bias-Wert, der während der Sommerzeit bei Übersetzungen zur Ortszeit verwendet werden soll. Diese Eigenschaft wird ignoriert, wenn kein Wert für die DaylightDay-Eigenschaft angegeben wird. Der Wert dieser Eigenschaft wird der Bias-Eigenschaft hinzugefügt, um die Verzerrung zu bilden, die bei Tageslicht verwendet wird. In den meisten Zeitzonen ist der Wert dieser Eigenschaft -60.

DaylightDay

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| DaylightDate|wDay")

DaylightDayOfWeek des DaylightMonth , wenn der Übergang von der Standardzeit zur Sommerzeit auf diesem Betriebssystem erfolgt.

Beispiel: Wenn der Übergangstag (DaylightDayOfWeek) an einem Sonntag auftritt, gibt der Wert "1" den ersten Sonntag des DaylightMonth an, "2" den zweiten Sonntag usw. Der Wert "5" gibt den letzten DaylightDayOfWeek im Monat an.

DaylightDayOfWeek

Datentyp: uint8

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| DaylightDate|wDayOfWeek")

Wochentag, an dem der Übergang von der Standardzeit zur Sommerzeit auf einem Betriebssystem erfolgt.

Sonntag (0)

Montag (1)

Dienstag (2)

Mittwoch (3)

Donnerstag (4)

Freitag (5)

Samstag (6)

Beispiel: 1

DaylightHour

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| DaylightDate|wHour")

Stunde des Tages, wenn der Übergang von der Standardzeit zur Sommerzeit auf einem Betriebssystem erfolgt.

Beispiel: 2

DaylightMillisecond

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| DaylightDate|wMilliseconds")

Millisekunde der DaylightSecond , wenn der Übergang von der Standardzeit zur Sommerzeit auf einem Betriebssystem erfolgt.

DaylightMinute

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| DaylightDate|wMinute")

Minute der DaylightHour , wenn der Übergang von der Standardzeit zur Sommerzeit auf einem Betriebssystem erfolgt.

Beispiel: 59

DaylightMonth

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| DaylightDate|wMonth")

Monat, in dem der Übergang von der Standardzeit zur Sommerzeit auf einem Betriebssystem erfolgt.

Januar (1)

Februar (2)

März (3)

April (4)

Mai (5)

Juni (6)

Juli (7)

August (8)

September (9)

Oktober (10)

November (11)

Dezember (12)

Daylightname

Datentyp: string

Zugriffstyp: Schreibgeschützt

Qualifizierer: MaxLen (256), MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| DaylightName")

Zeitzone, die dargestellt wird, wenn die Sommerzeit in Kraft ist.

Beispiel: "EDT" (Eastern Daylight Time)

DaylightSecond

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| DaylightDate|wSecond")

Sekunde der DaylightMinute , wenn der Übergang von der Standardzeit zur Sommerzeit auf einem Betriebssystem erfolgt.

Beispiel: 59

DaylightYear

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| DaylightDate|wYear")

Jahr, in dem die Sommerzeit in Kraft ist. Diese Eigenschaft ist nicht erforderlich.

Beispiel: 1997

Beschreibung

Datentyp: Zeichenfolge

Zugriffstyp: Schreibgeschützt

Textbeschreibung des aktuellen Objekts.

Diese Eigenschaft wird von CIM_Setting geerbt.

SettingID

Datentyp: Zeichenfolge

Zugriffstyp: Schreibgeschützt

Qualifizierer: MaxLen (256)

Bezeichner, durch den das aktuelle Objekt bekannt ist.

Diese Eigenschaft wird von CIM_Setting geerbt.

StandardBias

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| StandardBias"), Einheiten ("Minuten")

Bias-Wert, der verwendet werden soll, wenn die Sommerzeit nicht wirksam ist. Diese Eigenschaft wird ignoriert, wenn kein Wert für StandardDay angegeben wird. Der Wert dieser Eigenschaft wird der Bias-Eigenschaft hinzugefügt, um die Verzerrung während der Standardzeit zu bilden.

Beispiel: 0

StandardDay

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| StandardDate|wDay")

StandardDayOfWeek des StandardMonth , wenn der Übergang von der Sommerzeit zur Normalzeit auf einem Betriebssystem stattfindet.

Wenn der Übergangstag (StandardDayOfWeek) an einem Sonntag auftritt, gibt der Wert "1" den ersten Sonntag des StandardMonth an, "2" den zweiten Sonntag usw. Der Wert "5" gibt den letzten StandardDayOfWeek im Monat an.

StandardDayOfWeek

Datentyp: uint8

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| StandardDate|wDayOfWeek")

Wochentag, an dem der Übergang von der Sommerzeit zur Normalzeit auf einem Betriebssystem stattfindet.

Sonntag (0)

Montag (1)

Dienstag (2)

Mittwoch (3)

Donnerstag (4)

Freitag (5)

Samstag (6)

StandardHour

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| StandardDate|wHour")

Stunde des Tages, wenn der Übergang von der Sommerzeit zur Standardzeit auf einem Betriebssystem stattfindet.

Beispiel: 11

StandardMillisekunden

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| StandardDate|wMilliseconds")

Millisekunde der StandardSekunde , wenn der Übergang von der Sommerzeit zur Standardzeit auf einem Betriebssystem stattfindet.

StandardMinute

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| StandardDate|wMinute")

Minute des StandardDay , wenn der Übergang von der Sommerzeit zur Normalzeit auf einem Betriebssystem stattfindet.

Beispiel: 59

StandardMonth

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| StandardDate|wMonth")

Monat, in dem der Übergang von der Sommerzeit zur Normalzeit auf einem Betriebssystem stattfindet.

Januar (1)

Februar (2)

März (3)

April (4)

Mai (5)

Juni (6)

Juli (7)

August (8)

September (9)

Oktober (10)

November (11)

Dezember (12)

StandardName

Datentyp: Zeichenfolge

Zugriffstyp: Schreibgeschützt

Qualifizierer: key, MaxLen (256), MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| StandardName")

Name der Zeitzone, die dargestellt wird, wenn die Standardzeit in Kraft ist.

Beispiel: "EST" (Östliche Standardzeit)

StandardSecond

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| StandardDate|wSecond")

Zweite der StandardMinute , wenn der Übergang von der Sommerzeit zur Standardzeit auf einem Betriebssystem stattfindet.

Beispiel: 59

StandardYear

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Zeitstrukturen| TIME_ZONE_INFORMATION| StandardDate|wYear")

Jahr, in dem die Standardzeit gilt. Diese Eigenschaft ist nicht erforderlich.

Beispiel: 1997

Bemerkungen

Die Win32_TimeZone-Klasse wird von CIM_Setting abgeleitet.

Beim Schreiben von WMI-Abfragen können Sie keine Standardformate für Datum und Uhrzeit verwenden, z. B. 18.10.2002. Stattdessen müssen Sie alle Datumsangaben, die in Ihren Abfragen verwendet werden, in das UTC-Format konvertieren. Dies erfordert zwei Schritte: 1) Sie müssen den Offset (Differenz in Minuten) zwischen Ihrer Zeitzone und der Greenwich Mean Time bestimmen, und 2) Sie müssen den 18.10.2002 in einen UTC-Wert konvertieren.

Bestimmen des Offsets von Greenwich Mean Time

Zugegeben, WMI macht es schwierig, mit Datum und Uhrzeit zu arbeiten; glücklicherweise macht es WMI zumindest leicht, den Offset zwischen Ihrer Zeitzone und der Greenwich Mean Time zu bestimmen. Die WMI-Klasse Win32_TimeZone enthält die Eigenschaft Bias, die den GMT-Offset zurückgibt.

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

Konvertieren eines Datums in einen UTC-Wert

Nachdem Sie den GMT-Offset ermittelt haben, müssen Sie ein Standarddatum wie den 18.10.2002 in ein UTC-Datum konvertieren. Um ein Standarddatum in ein UTC-Datum zu konvertieren, können Sie VBScript-Datumsfunktionen wie Jahr, Monat und Tag verwenden, um die einzelnen Komponenten zu isolieren, aus denen ein UTC-Datum besteht. Nachdem Sie über einzelne Werte für diese Komponenten verfügen, können Sie sie auf die gleiche Weise verketten wie jeder andere Zeichenfolgenwert. UTC-Datumsangaben werden als Zeichenfolgen behandelt, da der GMT-Offset an das Ende angefügt werden muss. Wenn das Datum als Zahl angesehen wurde, ist dieser Wert:

20011018113047.000000-480

Würde fälschlicherweise als mathematische Gleichung behandelt (zur Übersichtlichkeit hinzugefügte Klammern):

(20011018113047.000000) - (480)

Im Datum 18.10.2002 sind die einzelnen Komponenten beispielsweise:

  • Jahr: 2002
  • Monat: 10
  • Tag: 18

Das Skript müsste diese drei Werte, die Zeichenfolge "113047.000000" (die Zeit einschließlich Millisekunden) und den GMT-Offset kombinieren, um ein UTC-Datum abzuleiten. Beispielsweise (zur Übersichtlichkeit erneut hinzugefügte Klammern):

(2002) & (10) & (18) & (113047.000000) & (-480)

Hinweis

Sie können die VBScript-Funktionen Stunde, Minute und Sekunde verwenden, um den Zeitteil eines UTC-Datums zu konvertieren. So würde eine Zeit wie 11:30:47 uhr in 113047 konvertiert werden.

 

Es gibt einen komplizierten Faktor. Der Monat muss die Positionen 5 und 6 in der Zeichenfolge einnehmen; der Tag muss die Positionen 7 und 8 einnehmen. Dies ist kein Problem mit Monat 10 und Tag 18. Aber wie können Sie den 5. Juli (Monat 7, Tag 5) erreichen, um die erforderlichen Stellen zu besetzen? Die Antwort besteht darin, jedem Wert eine führende Null hinzuzufügen, wodurch die 7 zu 07 und die 5 zu 05 geändert werden.

Verwenden Sie hierzu die VBScript-Len-Funktion, um die Länge (Anzahl der Zeichen) im Monat und am Tag zu überprüfen. Wenn die Länge 1 ist (was bedeutet, dass es nur ein Zeichen gibt), fügen Sie eine führende Null hinzu. So:

If Len(dtmMonth) = 1 Then
    dtmMonth = "0" & dtmMonth
End If

Beispiele

Im folgenden VBScript-Beispiel wird das aktuelle Datum in ein UTC-Datum konvertiert.

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)

Das folgende VBScript-Beispiel bestimmt den GMT-Offset und konvertiert dann ein angegebenes aktuelles Datum (in diesem Fall den 18.10.2002) in das UTC-Datums-Uhrzeit-Format. Nachdem das Datum konvertiert wurde, wird dieser Wert zum Durchsuchen eines Computers verwendet und gibt eine Liste aller Ordner zurück, die nach dem 18.10.2002 erstellt wurden.

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

Im folgenden VBScript-Codebeispiel werden die Einstellungen für Win32_TimeZone-Instanzen angezeigt.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista
Unterstützte Mindestversion (Server)
WindowsServer 2008
Namespace
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Siehe auch

CIM_Setting

Betriebssystemklassen

SWbemDateTime

Datums- und Uhrzeitformat

WMI-Aufgaben: Datums- und Uhrzeitangaben