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
CIMWin32.mof
DLL
CIMWin32.dll

Siehe auch

_CIM-Einstellung

Betriebssystemklassen

SWbemDateTime

Datums- und Uhrzeitformat

WMI-Aufgaben: Datums- und Uhrzeitangaben