CIM_DATETIME

Sie können auf alle Datums- und Uhrzeitangaben des Common Information Model (CIM) in WMI zugreifen, indem Sie eins von zwei Formaten fester Länge verwenden, die für WMI und CIM spezifisch sind. Verwenden Sie bei der Skripterstellung das SWbemDateTime-Objekt, um diese in normale 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 DATETIME-Werte in CIM gespeichert werden. Dieses Format ist gebietsschemaunabhängig, sodass Sie ein Skript schreiben können, das sich auf einem beliebigen Computer ausführen lässt. Sie müssen dieses Format verwenden, um ein Datum und eine Uhrzeit im Managed Object Format (MOF) zu definieren, oder wenn Sie mithilfe der COM-API für WMI oder der Skript-API für WMI in ein Instanz schreiben. Weitere Informationen finden Sie unter Ändern einer Instanzeigenschaft.
Format gilt nur für Abfragen in der WMI-Abfragesprache (WQL).
yyyy-mm-dd HH:MM:SS:mmm
Dieses Format kann in Skripts verwendet werden, die die SWbemDateTime-Methoden verwenden. Weitere Informationen finden Sie unter Abfragen von WMI oder Abfragen mit WQL. Dieses Format ist nicht vom Gebietsschema unabhängig. Die Reihenfolge von Jahr, Monat und Tag hängt von der Regions- und Sprachformateinstellung der Benutzersitzung ab. Während der Standardwert für Englisch (USA) beispielsweise „mm-dd-yyyy hh:mm:ss:mmm“ lautet, lautet das Format für die meisten anderen Länder oder Regionen „yyyy-mm-dd hh:mm:ss:mmm“.

In der folgenden Tabelle sind die Felder in den Formaten aufgeführt.

Feld BESCHREIBUNG
yyyy Vierstelliges Jahr (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 Zweistelliger Monat (01 bis 12).
dd Zweistelliger Tag des Monats (01 bis 31). Dieser Wert muss für den Monat geeignet sein. Beispielsweise ist der 31. Februar ungültig. Ihre Implementierung muss jedoch nicht die Gültigkeit von Daten überprüfen.
HH Zweistellige Stunde des Tages unter Verwendung der 24-Stunden-Uhr (00 bis 23).
MM Zweistellige Minute in der Stunde (00 bis 59).
SS Zweistellige Sekunden in der Minute (00 bis 59).
mmmmmm Sechsstellige Mikrosekunden in der Sekunde (000000 bis 999999). Ihre Implementierung muss die Auswertung mithilfe dieses Felds nicht unterstützen. Dieses Feld muss jedoch immer vorhanden sein, um die feste Länge der Zeichenfolge beizubehalten.
mmm Dreistellige Millisekunden in der Minute (000 bis 999).
s Pluszeichen (+) oder Minuszeichen (-), um eine positive oder negative Abweichung gegenüber der koordinierten Weltzeiten (UTC) anzugeben.
UUU Dreistellige Abweichung (Offset), die die Anzahl der Minuten angibt, um die die ursprüngliche Zeitzone von UTC abweicht. Für WMI wird empfohlen, Zeiten in GMT (eine UTC-Abweichung von 0) zu konvertieren, was aber nicht erforderlich ist.

Sie müssen alle Felder mit der jeweils angegebenen Länge eingeben, wobei führende Nullen entsprechend dem Typ verwendet werden. Verwenden Sie jedoch Sternchen, um nicht verwendete Felder anzuzeigen, oder als Platzhalterwerte. Sie können ein Sternchen (*) überall verwenden, mit Ausnahme der WHERE-Klausel einer Abfrage. Beispielsweise können ein Datum und eine Uhrzeit mit einem nicht angegebenen Jahr in einem beliebigen Jahr vorkommen. 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 Verwendungsarten von Sternchen beschrieben:

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

Wenn ein datetime-Wert verwendet wird, um einen bestimmten Zeitpunkt darzustellen, sollten alle zugehörigen Felder Daten enthalten. Wenn er verwendet wird, um einen Zeitraum darzustellen, sollten nur die Felder, die zum Vermitteln der Dauer erforderlich sind, Daten enthalten.

Im folgenden Beispiel wird „erster April“ beschrieben: ein Datum relativ zu einem nicht angegebenen Jahr, aber immer noch ein definierter Zeitpunkt, 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 im UUU-Feld hinter dem Plus- oder Minuszeichen platzieren:

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

Eine Anwendung bezieht einen Datums- und Uhrzeitverweis ohne Zeitzone auf ein lokales, abstraktes Chronometer innerhalb des ausführenden Betriebssystems. Beispielsweise können tragbare Computer über interne Uhren verfügen, deren Einstellungen der geografischen Zeitzone entsprechen können oder nicht. Sie können die Zeitangabe ohne Zeitzone interpretieren, indem Sie die Zeitzone der aktuellen abstrakten Zeitquelle anstelle der lokalen Zeitzone einsetzen.

Sie sollten die Bedeutung der UTC-Abweichung bei Datums- und Uhrzeitangaben in Abfragen besonders berücksichtigen. Im Allgemeinen funktionieren Äquivalenz-, Größer-als- oder Kleiner-als-Vergleiche zwischen zwei Datums- und Uhrzeitangaben, wenn die Datums- und Uhrzeitangaben dieselbe UTC-Abweichung verwenden. Wenn Sie sich mit Datums- und Uhrzeitangaben befassen, die mit unterschiedlichen Zeitzonenabweichungen auftreten, sollten Sie zuerst die Datums- und Uhrzeitangaben in GMT konvertieren.

Abfragen, die relative Datums- und Uhrzeitangaben mit Sternchen in einem oder mehreren Unterfeldern enthalten, sind für WMI nur beim Vergleich auf Äquivalenz sinnvoll. Darüber hinaus lässt WMI die Verwendung von Sternchen als Platzhalter nicht zu. Stattdessen vergleicht WMI relative Datums- und Uhrzeitangaben zeichenweise.

In den folgenden Beispielen werden zwei Datumsangaben beschrieben, die von einer WMI-Abfrage nicht als gleich bewertet werden:

  • 19980401135809.000000+***
  • 19980401135809.000000+000

Konvertieren in das FILETIME- oder VT_DATE-Format

Das DATETIME-Format von CIM wird nur in WMI verwendet. Sie können in das und aus dem WMI-Format und entweder in das FILETIME- oder das VT_DATE-Format konvertieren, indem Sie die Methoden des SWbemDateTime-Skriptobjekts aufrufen. Eine FILETIMEdatetime-Struktur ist ein 64-Bit-Wert, den die 32-Bit-Windows-Betriebssysteme verwenden. Das VT_DATE Format ist ein automatisierungsvariabler datetime-Wert, der 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 unter Verwendung eines FILETIME-Datums als Eingabe fest.
SWbemDateTime.SetVarDate Legt eine DATETIME-Eigenschaft unter Verwendung eines VT_DATE-Datums als Eingabe fest.

Datums- und Uhrzeitformat

Informationen zu WMI

WMI-Aufgaben: Datums- und Uhrzeitangaben

Intervallformat

SWbemObject.Put_

SWbemServicesEx.Put

SWbemDateTime

IWbemClassObject::Put

IWbemServices::PutClass