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 |
|
DLL |
|
Siehe auch