Win32 _ TimeZone-Klasse
Die WMI-Klasse "Win32 _ TimeZone" stellt die Zeitzoneninformationen für ein Computersystem dar, auf dem Windows ausgeführt wird, 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 werden in alphabetischer Reihenfolge und nicht in MOF-Reihenfolge sortiert.
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 Typen von Membern:
Eigenschaften
Die Win32 _ TimeZone-Klasse verfügt über diese Eigenschaften.
-
Verzerrung (Bias)
-
-
Datentyp: sint32
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API | Time Structures TIME ZONE | _ _ INFORMATION | Bias"), Einheiten ("Minuten")
Aktuelle Verschiebung für die Ortszeitübersetzung. Der Bias ist der Unterschied zwischen koordinierte Weltzeit (UTC) und Ortszeit. Alle Übersetzungen zwischen UTC und Ortszeit basieren auf der folgenden Formel: UTC = Ortszeit – Verschiebung. Diese Eigenschaft ist obligatorisch.
-
-
Caption
-
-
Datentyp: String
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MaxLen (64)
Kurze Textbeschreibung des aktuellen Objekts.
Diese Eigenschaft wird von der _ CIM-Einstellunggeerbt.
-
-
DaylightBias
-
-
Datentyp: sint32
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API-Zeitstrukturen | TIME ZONE | _ _ INFORMATION | DaylightBias"), Einheiten ("Minuten")
Verschiebungswert, der während Ortszeitübersetzungen verwendet werden soll, die während der Sommerzeit auftreten. 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 während der Sommerzeit 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 in 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, in der der Übergang von der Normalzeit zur Sommerzeit auf einem Betriebssystem erfolgt.
Beispiel: 2
DaylightMillisecond
-
Datentyp: uint32
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API-Zeitstrukturen | TIME ZONE | _ _ INFORMATION | DaylightDate | wMilliseconds")
Millisekunde von DaylightSecond, wenn der Übergang von der Standardzeit zur Sommerzeit in einem Betriebssystem erfolgt.
DaylightMinute
-
Datentyp: uint32
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API-Zeitstrukturen | TIME ZONE | _ _ INFORMATION | DaylightDate | wMinute")
Minute des DaylightHour-Ausdrucks, wenn der Übergang von der Normalzeit zur Sommerzeit in 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")
Die Zeitzone wird dargestellt, wenn die Sommerzeit wirksam ist.
Beispiel: "EDT" (Eastern Daylight Time)
DaylightSecond
-
Datentyp: uint32
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API-Zeitstrukturen | TIME ZONE | _ _ INFORMATION | DaylightDate | wSecond")
Zweite von DaylightMinute, wenn der Übergang von der Standardzeit zur Sommerzeit in einem Betriebssystem erfolgt.
Beispiel: 59
DaylightYear
-
Datentyp: uint32
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API | Time Structures 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 der CIM-Einstellung _ geerbt.
SettingID
-
Datentyp: Zeichenfolge
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MaxLen (256)
Bezeichner, unter dem das aktuelle Objekt bekannt ist.
Diese Eigenschaft wird von der CIM-Einstellung _ geerbt.
StandardBias
-
Datentyp: uint32
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API | Time Structures TIME ZONE | _ _ INFORMATION | StandardBias"), Units ("minutes")
Der Zu verwendende Biaswert, 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 Abweichung während der Standardzeit zu bilden.
Beispiel: 0
StandardDay
-
Datentyp: uint32
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API | Time Structures TIME ZONE | _ _ INFORMATION | StandardDate | wDay")
StandardDayOfWeek von StandardMonth, wenn der Übergang von sommerzeit zur Standardzeit auf einem Betriebssystem erfolgt.
Wenn der Übergangstag (StandardDayOfWeek) an einem Sonntag auftritt, gibt der Wert "1" den ersten Sonntag des StandardMonth an, "2" gibt den zweiten Sonntag an und so weiter. Der Wert "5" gibt den letzten StandardDayOfWeek im Monat an.
StandardDayOfWeek
-
Datentyp: uint8
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API | Time Structures TIME ZONE | _ _ INFORMATION | StandardDate | wDayOfWeek")
Wochentag, an dem der Übergang von sommerzeit zur Standardzeit auf einem Betriebssystem erfolgt.
Sonntag (0)
Montag (1)
Dienstag (2)
Mittwoch (3)
Donnerstag (4)
Freitag (5)
Samstag (6)
StandardHour
-
Datentyp: uint32
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API | Time Structures TIME ZONE | _ _ INFORMATION | StandardDate | wHour")
Stunde des Tages, in der der Übergang von sommerzeit zur Standardzeit auf einem Betriebssystem erfolgt.
Beispiel: 11
StandardMillisecond
-
Datentyp: uint32
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API | Time Structures TIME ZONE | _ _ INFORMATION | StandardDate | wMilliseconds")
Millisekunde der StandardSekunde, wenn der Übergang von sommerzeit zur Standardzeit in einem Betriebssystem erfolgt.
StandardMinute
-
Datentyp: uint32
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API | Time Structures TIME ZONE | _ _ INFORMATION | StandardDate | wMinute")
Minute des StandardDay, wenn der Übergang von sommerzeit zur Standardzeit auf einem Betriebssystem erfolgt.
Beispiel: 59
StandardMonth
-
Datentyp: uint32
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API | Time Structures TIME ZONE | _ _ INFORMATION | StandardDate | wMonth")
Monat, in dem der Übergang von der Sommerzeit zur Standardzeit 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)
StandardName
-
Datentyp: Zeichenfolge
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: key, MaxLen (256), MappingStrings ("Win32API | Time Structures TIME ZONE | _ _ INFORMATION | StandardName")
Name der Zeitzone, die dargestellt wird, wenn die Standardzeit wirksam ist.
Beispiel: "EST" (Eastern Normalzeit)
StandardSecond
-
Datentyp: uint32
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API | Time Structures TIME ZONE | _ _ INFORMATION | StandardDate | wSecond")
Zweite StandardMinute-Regel, wenn der Übergang von sommerzeit zur Standardzeit auf einem Betriebssystem erfolgt.
Beispiel: 59
StandardYear
-
Datentyp: uint32
-
Zugriffstyp: Schreibgeschützt
-
Qualifizierer: MappingStrings ("Win32API | Time Structures TIME ZONE | _ _ INFORMATION | StandardDate | wYear")
Jahr, in dem die Standardzeit wirksam ist. Diese Eigenschaft ist nicht erforderlich.
Beispiel: 1997
Hinweise
Die Win32 _ TimeZone-Klasse wird von der _ CIM-Einstellung abgeleitet.
Sie können beim Schreiben von WMI-Abfragen keine standardmäßigen Datums-/Uhrzeitformate wie z.B. den 18.10.2002 verwenden. Stattdessen müssen Sie alle in Ihren Abfragen verwendeten Datumsangaben in das UTC-Format konvertieren. Dies erfordert zwei Schritte: 1) Sie müssen den Offset (Differenz in Minuten) zwischen Ihrer Zeitzone und Greenwich Mean Time bestimmen und 2) Sie müssen 18.10.2002 in einen UTC-Wert konvertieren.
Bestimmen des Offsets von Greenwich Mean Time
Zugegebenermaßen erschwert WMI das Arbeiten mit Datums- und Uhrzeitangaben. glücklicherweise erleichtert es WMI zumindest, den Offset zwischen Ihrer Zeitzone und Greenwich Mean Time zu bestimmen. Die WMI-Klasse Win32 _ TimeZone enthält eine 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 bestimmt haben, müssen Sie ein Standarddatum wie 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, die ein UTC-Datum bilden. Sobald Sie über einzelne Werte für diese Komponenten verfügen, können Sie sie auf die gleiche Weise verketten wie alle anderen Zeichenfolgenwerte. UTC-Datumsangaben werden als Zeichenfolgen behandelt, da der GMT-Offset an das Ende angefügt werden muss. Wenn das Datum als Zahl betrachtet wurde, hat dieser Wert Folgendes:
20011018113047.000000-480
Würde fälschlicherweise als mathematische Gleichung behandelt (aus Gründen der Übersichtlichkeit wurden Klammern hinzugefügt):
(20011018113047.000000) - (480)
Im Datum 18.10.2002 sind die einzelnen Komponenten beispielsweise:
- Jahr: 2002
- Monat: 10
- Tag: 18
Das Skript muss diese drei Werte kombinieren: die Zeichenfolge "113047.0000000" (die die Uhrzeit einschließlich Millisekunden darstellt) und den GMT-Offset, um ein UTC-Datum abzuleiten. Beispiel: (aus Gründen der Übersichtlichkeit wurden erneut Klammern hinzugefügt):
(2002) & (10) & (18) & (113047.000000) & (-480)
Hinweis
Sie können die VBScript-Funktionen Hour, Minute und Second verwenden, um den Zeitteil eines UTC-Datums zu konvertieren. Daher eine Zeit wie 11:30:47 Uhr wird in 113047 konvertiert.
Es gibt einen erschwerenden Faktor. Der Monat muss die Positionen 5 und 6 in der Zeichenfolge annehmen. der Tag muss die Positionen 7 und 8 annehmen. Dies ist kein Problem mit Monat 10 und Tag 18. Aber wie erhalten Sie den 5. Juli (7. Monat, Tag 5), um die erforderlichen Positionen zu erfüllen? Die Antwort besteht darin, jedem Wert eine führende Null hinzuzufügen, wodurch die Werte 7 in 07 und 5 in 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 (d. h., es gibt nur ein Zeichen), 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 18.10.2002) in das UTC-Datum/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) |
Windows Server 2008 |
| Namespace |
Stamm \ CIMV2 |
| MOF |
|
| DLL |
|