CIM_DATETIME

Sie können in WMI auf alle Datums- und Uhrzeitangaben von Common Information Model (CIM) zugreifen, indem Sie eines von zwei speziellen WMI- und CIM-Formaten mit fester Länge verwenden. Bei der Skripterstellung verwenden Sie das SWbemDateTime-Objekt, um diese in reguläre Datums- und Uhrzeitangaben zu konvertieren.

In den folgenden Abschnitten wird die Verwendung der WMI-Datums- und Uhrzeitformate beschrieben.

Format

In der folgenden Tabelle sind die beiden Datums- und Uhrzeitformate aufgeführt, die von WMI verwendet werden.

Format Beschreibung
DATETIME
yyyymmddHHMMSS.mmmmmmsUUU
Format, in dem CIM-DATETIME-Werte gespeichert werden. Dieses Format ist gebietsschemaunabhängig, sodass Sie ein Skript schreiben können, das auf jedem Computer läuft. Sie müssen dieses Format verwenden, um ein Datum und eine Uhrzeit in Managed Object Format (MOF) anzugeben, oder beim Schreiben in eine Instanz mithilfe der COM-API für WMI oder der Skript-API für WMI. Weitere Informationen finden Sie unter Ändern einer Instanzeigenschaft.
Das Format ist nur in Abfragen in der WMI-Abfragesprache (WMI Query Language, WQL) gültig.
jjjj-mm-tt HH:MM:SS:mmm
Dieses Format kann in Skripts mit den SWbemDateTime-Methoden verwendet werden. Weitere Informationen finden Sie unter Abfragen von WMI oder Abfragen mit WQL. Dieses Format ist nicht unabhängig vom Gebietsschema. Die Reihenfolge von Jahr, Monat und Tag hängt von der Regions- und Sprachformateinstellung der Benutzersitzung ab. Die Standardeinstellung für Englisch (USA) lautet beispielsweise „mm-tt-jjjj hh:mm:ss:mmm“, das Format für die meisten anderen Länder oder Regionen lautet „jjjj-mm-tt hh:mm:ss:mmm“.

In der folgenden Tabelle sind die Felder der Formate aufgeführt.

Feld Beschreibung
yyyy Vierstellige Jahreszahl (0000 bis 9999). Ihre Implementierung kann den unterstützten Bereich einschränken. Beispielsweise kann eine Implementierung nur die Jahre 1980 bis 2099 unterstützen.
mm Zweistellige Monatsangabe (01 bis 12).
dd Zweistellige Zahl für den Tag des Monats (01 bis 31). Dieser Wert muss für den Monat geeignet sein. Beispielsweise ist „31. Februar“ nicht gültig. Ihre Implementierung muss jedoch nicht auf gültige Daten prüfen.
HH Zweistellige Stunde des Tages im 24-Stunden-Format (00 bis 23).
MM Zweistellige Minute in der Stunde (00 bis 59).
SS Zweistellige Anzahl von Sekunden in der Minute (00 bis 59).
mmmmmm Sechsstellige Anzahl von Mikrosekunden in der Sekunde (000000 bis 999999). Ihre Implementierung muss die Auswertung mit diesem Feld nicht unterstützen. Allerdings muss dieses Feld immer vorhanden sein, damit die Zeichenfolge eine feste Länge hat.
mmm Dreistellige Anzahl von Millisekunden in der Minute (000 bis 999).
s Pluszeichen (+) oder Minuszeichen (-) zur Angabe einer positiven oder negativen Abweichung von der koordinierten Weltzeit (UTC).
UUU Dreistelliger Versatz, der die UTC-Abweichung der ursprünglichen Zeitzone in Minuten angibt. Für WMI ist es empfehlenswert, aber nicht erforderlich, die Zeiten in GMT zu konvertieren (eine UTC-Abweichung von Null).

Sie müssen alle Felder mit der angegebenen Länge ausfüllen und dabei je nach Feldtyp Nullen voranstellen. Verwenden Sie jedoch Sternchen, um nicht verwendete Felder oder Platzhalterwerte anzugeben. Sie können ein Sternchen (*) überall mit Ausnahme der WHERE-Klausel einer Abfrage verwenden. Beispielsweise können ein Datum und eine Uhrzeit mit einem nicht angegebenen Jahr in jedem Jahr auftreten. Wenn Sie ein Feld nicht angeben möchten, müssen Sie das gesamte Feld durch Sternchen ersetzen.

In den folgenden Beispielen werden gültige und ungültige Verwendungen von Sternchen beschrieben:

  • 19980416******.000000+*** (Zulässig)
  • 1998-04-16 ******:*** (Unzulässig)
  • 199*0416******.000000+*** (Unzulässig)
  • 199*-04-16 ******:*** (Unzulässig)

Wenn ein Datetime-Wert verwendet wird, um einen bestimmten Zeitpunkt darzustellen, müssen alle Felder Daten enthalten. Wenn er verwendet wird, um einen Zeitraum darzustellen, müssen nur jene Felder Daten enthalten, die zum Übermitteln der Dauer erforderlich sind.

Im folgenden Beispiel wird „1. April“ beschrieben: ein Datum, das sich auf ein nicht näher bestimmtes Jahr bezieht, aber dennoch ein definierter Punkt ist, wenn die Messgenauigkeit einen Tag beträgt.

  • ****0401******.000000+***
  • ****-04-01 ******:*** (Unzulässig)

Festlegen von UTC-Abweichung und GMT

In den folgenden Beispielen wird beschrieben, wie Sie eine Zeit ohne Zeitzone definieren können, indem Sie Sternchen in das UUU-Feld nach dem Plus- oder Minuszeichen setzen:

  • 19980401135809.000000+***
  • 19980401135809.000000-***
  • 1998-04-01 13:58:09:*** (Unzulässig)

Eine Anwendung interpretiert einen nicht in eine Zeitzone eingeordneten Datums- und Zeitverweis als lokalen, abstrakten Zeitmesser innerhalb des ausführenden Betriebssystems. Beispielsweise können tragbare Computer über eine interne Uhr verfügen, deren Einstellungen der geografischen Zeitzone entsprechen oder auch nicht. Sie können eine nicht in eine Zeitzone eingeordnete Zeit interpretieren, indem Sie die lokale Zeitzone durch die Zeitzone der aktuellen abstrakten Zeitquelle ersetzen.

Bei Abfragen sollten Sie besonders auf die Bedeutung der UTC-Abweichung bei Datums- und Zeitangaben achten. Im Allgemeinen funktionieren Äquivalenz-, Größer-als- und Kleiner-als-Vergleiche zwischen zwei Datums- und Zeitangaben, wenn für die Datums- und Zeitangaben dieselbe UTC-Abweichung verwendet wird. Wenn Sie mit Datums- und Zeitangaben arbeiten, die mit unterschiedlichen Zeitzonenabweichungen auftreten, sollten Sie die Datums- und Zeitangaben zunächst in GMT konvertieren.

Abfragen mit relativen Datums- und Uhrzeitangaben mit Sternchen in einem oder mehreren Unterfeldern sind nur für WMI sinnvoll, wenn sie für Äquivalenz verglichen werden. Außerdem lässt WMI die Verwendung von Sternchen als Platzhalter nicht zu. Stattdessen vergleicht WMI relative Datums- und Uhrzeitangaben auf Zeichenbasis.

In den folgenden Beispielen werden zwei Datumsangaben beschrieben, die für WMI-Abfrage nicht als gleich gelten:

  • 19980401135809.000000+***
  • 19980401135809.000000+000

Konvertieren in das FILETIME- oder VT_DATE-Format

Das CIM-DATETIME-Format wird nur innerhalb von WMI verwendet. Sie können in das WMI-Format und aus dem WMI-Format sowie in das FILETIME- oder VT_DATE-Format konvertieren, indem Sie die Methoden des SWbemDateTime-Skriptobjekts aufrufen. Eine FILETIME-Datetime-Struktur ist ein 64-Bit-Wert, der von den 32-Bit-Windows-Betriebssystemen verwendet wird. Das VT_DATE-Format ist der Datetime-Wert einer Automatisierungsvariante, die von Visual Basic und ActiveX verwendet wird. In der folgenden Tabelle sind die Konvertierungsmethoden aufgeführt.

Methode Beschreibung
SWbemDateTime.GetFileTime Ruft einen DATETIME-Wert im FILETIME-Format ab.
SWbemDateTime.GetVarDate Ruft einen DATETIME-Wert im VT_DATE Format ab.
SWbemDateTime.SetFileTime Legt eine DATETIME-Eigenschaft mit einem FILETIME-Datum als Eingabe fest.
SWbemDateTime.SetVarDate Legt eine DATETIME-Eigenschaft mit einem VT_DATE-Datum als Eingabe fest.

Datum- und Zeit format

Informationen zu WMI

WMI-Aufgaben: Datums- und Uhrzeitangaben

Intervallformat

SWbemObject.Put_

SWbemServicesEx.Put

SWbemDateTime

IWbemClassObject::Put

IWbemServices::PutClass