Share via


CIM_DATETIME

Vous pouvez accéder à toutes les dates et heures Common Information Model (CIM) dans WMI à l’aide de l’un des deux formats de longueur fixe spécifiques à WMI et CIM. Dans le script, utilisez l’objet SWbemDateTime pour les convertir en dates et heures régulières.

Les sections suivantes décrivent comment utiliser les formats de date et d’heure WMI.

Format

Le tableau suivant répertorie les deux formats de date et d’heure utilisés par WMI.

Format Description
DATETIME
yyyymmddHHMMSS.mmmmmmsUUU
Format dans lequel les valeurs DATETIME sont stockées. Ce format est indépendant de l'environnement local, de sorte que vous pouvez écrire un script qui s'exécute sur n'importe quelle machine. Vous devez utiliser ce format pour définir une date et une heure au format MOF (Managed Object Format) ou lors de l’écriture dans une instance à l’aide de l’API COM pour WMI ou de l’API script pour WMI. Pour plus d’informations, voir Modifier une propriété d'instance.
Format valide uniquement dans les requêtes WMI Query Language (WQL).
yyyy-mm-dd HH:MM:SS:mmm
Ce format peut être utilisé dans les scripts qui utilisent les méthodes SWbemDateTime. Pour plus d'informations, voir Interroger WMI ou Interroger avec WQL. Ce format n’est pas indépendant des paramètres régionaux. L’ordre de l’année, du mois et du jour dépend du paramètre de format régional et de langue de la session utilisateur. Par exemple, alors que le format par défaut pour l'anglais des États-Unis est "mm-dd-yyyy hh:mm:ss:mmm", le format pour la plupart des autres pays ou régions est "yyyy-mm-dd hh:mm:ss:mmm".

Le tableau suivant répertorie les champs dans les formats.

Champ Description
yyyy Année à quatre chiffres (0000 à 9999). Votre implémentation peut restreindre la plage prise en charge. Par exemple, une implémentation peut prendre en charge uniquement les années 1980 à 2099.
mm Mois à deux chiffres (01 à 12).
dd Jour à deux chiffres du mois (01 à 31). Cette valeur doit être appropriée pour le mois. Par exemple, le 31 février n’est pas valide. Toutefois, votre implémentation n’a pas besoin de case activée pour des données valides.
HH Heure à deux chiffres de la journée à l’aide de l’horloge de 24 heures (00 à 23).
MM Minute à deux chiffres dans l’heure (00 à 59).
SS Nombre à deux chiffres de secondes dans la minute (00 à 59).
mmmmmm Nombre à six chiffres de microsecondes dans la seconde (000000 à 999999). Votre implémentation n’a pas besoin de prendre en charge l’évaluation à l’aide de ce champ. Toutefois, ce champ doit toujours être présent pour conserver la nature de longueur fixe de la chaîne.
mmm Nombre de millisecondes à trois chiffres dans la minute (000 à 999).
s Signe plus (+) ou signe moins (-) pour indiquer un décalage positif ou négatif par rapport aux temps universels coordonnés (UTC).
UUU Décalage à trois chiffres indiquant le nombre de minutes pendant lesquelles le fuseau horaire d’origine s’écarte de l’heure UTC. Pour WMI, il est recommandé, mais pas obligatoire, de convertir les heures en GMT (décalage UTC égal à zéro).

Vous devez entrer tous les champs avec la longueur indiquée, en utilisant des zéros de début appropriés pour le type. Toutefois, utilisez des astérisques pour indiquer les champs inutilisés ou comme valeur générique. Vous pouvez utiliser un astérisque (*) partout, à l’exception de la clause WHERE d’une requête. Par exemple, une date et une heure avec une année non spécifiée peuvent se produire dans n’importe quelle année. Si vous souhaitez laisser un champ non spécifié, vous devez remplacer le champ entier par des astérisques.

Les exemples suivants décrivent les utilisations valides et non valides des astérisques :

  • 19980416******.000000+*** (légal)
  • 1998-04-16 ******:*** (illégal)
  • 199*0416******.000000+*** (illégal)
  • 199*-04-16 ******:*** (illégal)

Si une dateheure est utilisée pour représenter un moment précis dans le temps, tous ses champs doivent contenir des données. Si elle est utilisée pour représenter un intervalle de temps, seuls les champs nécessaires à la transmission de la durée doivent contenir des données.

L'exemple suivant décrit le "premier avril" : une date relative à une année non spécifiée, mais toujours un point défini si le niveau de détail de la mesure est un jour.

  • ****0401******.000000+***
  • ****-04-01 ******:*** (illégal)

Réglage du décalage UTC et de l'heure GMT

Les exemples suivants décrivent comment définir une heure sans fuseau horaire en plaçant des astérisques dans le champ UUU après le signe plus ou moins :

  • 19980401135809.000000+***
  • 19980401135809.000000-***
  • 1998-04-01 13:58:09:*** (illégal)

Une application interprète une référence de date et d'heure non zonée comme un chronomètre local et abstrait au sein du système d'exploitation en cours d'exécution. Par exemple, les ordinateurs portables peuvent avoir des horloges internes dont les paramètres peuvent correspondre ou non au fuseau horaire géographique. Vous pouvez interpréter l’heure non zoné en remplaçant le fuseau horaire de la source d’heure abstraite actuelle plutôt que le fuseau horaire local.

Vous devez accorder une attention particulière à la signification du décalage UTC avec des dates et des heures dans les requêtes. En général, les comparaisons d'équivalence, supérieure ou inférieure fonctionnent entre deux dates et heures si les dates et heures utilisent le même décalage UTC. Lorsque vous traitez des dates et des heures qui se produisent avec des décalages de fuseau horaire différents, vous devez d’abord convertir les dates et heures en GMT.

Les requêtes qui impliquent des dates et des heures relatives avec des astérisques dans un ou plusieurs sous-champs ne sont significatives pour WMI que lorsqu’elles sont comparées pour l’équivalence. En outre, WMI n’autorise pas l’utilisation d’astérisques comme caractères génériques. Au lieu de cela, WMI compare les dates et heures relatives sur la base d'un caractère pour un autre.

Les exemples suivants décrivent deux dates qu’une requête WMI ne considère pas comme égales :

  • 19980401135809.000000+***
  • 19980401135809.000000+000

Conversion au format FILETIME ou VT_DATE

Le format CIM DATETIME est utilisé uniquement dans WMI. Vous pouvez effectuer une conversion vers et à partir du format WMI et du format FILETIME ou VT_DATE en appelant les méthodes de l’objet de script SWbemDateTime. Une structure FILETIMEdatetime est une valeur 64 bits que les systèmes d’exploitation Windows 32 bits utilisent. Le format VT_DATE est une variante d'automatisation de la date utilisée par Visual Basic et ActiveX. Le tableau suivant répertorie les méthodes de l'objet .

Méthode Description
SWbemDateTime.GetFileTime Obtient une valeur DATETIME au format FILETIME.
SWbemDateTime.GetVarDate Obtient une valeur DATETIME au format VT_DATE.
SWbemDateTime.SetFileTime Définit une propriété DATETIME à l’aide d’une date FILETIME comme entrée.
SWbemDateTime.SetVarDate Définit une propriété DATETIME à l’aide d’une date VT_DATE comme entrée.

Format date et heure

À propos de WMI

Tâches WMI : Dates et heures

Format d’intervalle

SWbemObject.Put_

SWbemServicesEx.Put

SWbemDateTime

IWbemClassObject::Put

IWbemServices::PutClass