CIM_DATETIME
Vous pouvez accéder à toutes les dates et heures du Common Information Model (CIM) dans WMI en utilisant l’un des deux formats de longueur fixe spécifiques à WMI et CIM. En script, utilisez l’objet SWbemDateTime pour les convertir en dates et heures normales.
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 du CIM sont stockées. Ce format est indépendant de la locale, vous pouvez donc écrire un script qui fonctionne sur n’importe quelle machine. Vous devez utiliser ce format pour définir une date et une heure dans le Managed Object Format (MOF), ou lors de l’écriture dans une instance en utilisant l’API COM pour WMI ou l’API Scripting pour WMI. Pour plus d’informations, veuillez consulter la section Modification d’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, veuillez consulter Faire des requêtes WMI ou Faire des requêtes 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 des paramètres de format régional et linguistique 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 ne prendre en charge que les années 1980 à 2099. |
mm | Mois à deux chiffres (01 à 12). |
dd | Jour du mois à deux chiffres (01 à 31). Cette valeur doit être appropriée pour le mois. Par exemple, le 31 février n’est pas valide. Cependant, votre implémentation n’a pas à vérifier les données valides. |
HH | Heure de la journée à deux chiffres en utilisant l’horloge de 24 heures (00 à 23). |
MM | Minute à deux chiffres dans l’heure (00 à 59). |
SS | Nombre de secondes à deux chiffres dans la minute (00 à 59). |
mmmmmm | Nombre de microsecondes à six chiffres dans la seconde (000000 à 999999). Votre implémentation n’a pas à prendre en charge l’évaluation en utilisant ce champ. Cependant, ce champ doit toujours être présent pour préserver 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 au temps universel coordonné (UTC). |
UUU | Décalage à trois chiffres indiquant le nombre de minutes dont le fuseau horaire d’origine diffère de l’UTC. Pour WMI, il est encouragé, mais non requis, de convertir les heures en GMT (un décalage UTC de zéro). |
Vous devez entrer tous les champs avec la longueur indiquée, en utilisant des zéros initiaux comme approprié pour le type. Cependant, utilisez des astérisques pour indiquer les champs non utilisés ou comme valeur générique. Vous pouvez utiliser un astérisque (*) partout sauf dans la clause WHERE d’une requête. Par exemple, une date et une heure avec une année non spécifiée peuvent survenir 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 des utilisations valides et invalides des astérisques :
- 19980416******.000000+*** (Légal)
- 1998-04-16 ******:*** (Illégal)
- 199*0416******.000000+*** (Illégal)
- 199*-04-16 ******:*** (Illégal)
Si un datetime est utilisé pour représenter un point précis dans le temps, tous ses champs doivent inclure des données. S’il est utilisé pour représenter une plage de temps, seuls les champs nécessaires pour indiquer la durée doivent inclure des données.
L’exemple suivant décrit « 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 mesure est un jour.
- ****0401******.000000+***
- ****-04-01 ******:*** (Illégal)
Réglage du décalage UTC et GMT
Les exemples suivants décrivent comment vous pouvez 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 par rapport à un chronomètre abstrait local au sein du système d’exploitation en cours d’exécution. Par exemple, les ordinateurs portables peuvent avoir des horloges internes dont les réglages peuvent ou non correspondre au fuseau horaire géographique. Vous pouvez interpréter l’heure non zonée en substituant le fuseau horaire de la source de temps abstraite actuelle plutôt que le fuseau horaire local.
Vous devez accorder une attention particulière à la signification du décalage UTC avec les dates et heures dans les requêtes. En général, les comparaisons d’équivalence, de supérieur à ou de inférieur à fonctionnent entre deux dates et heures si les dates et heures utilisent le même décalage UTC. Lorsqu’on traite des dates et heures qui se produisent avec différents décalages de fuseau horaire, vous devez d’abord convertir les dates et heures en GMT.
Les requêtes impliquant des dates et heures relatives avec des astérisques dans un ou plusieurs sous-champs ne sont significatives pour WMI que lorsqu’elles sont comparées pour équivalence. De plus, WMI n’autorise pas l’utilisation d’astérisques comme jokers. Au lieu de cela, WMI compare les dates et heures relatives sur une base caractère par caractère.
Les exemples suivants décrivent deux dates que WMI ne considère pas comme égales :
- 19980401135809.000000+***
- 19980401135809.000000+000
Conversion au format FILETIME ou VT_DATE
Le format DATETIME du CIM est utilisé uniquement dans WMI. Vous pouvez convertir vers et depuis le format WMI et soit le format FILETIME ou VT_DATE en appelant les méthodes de l’objet de script SWbemDateTime. Une structure FILETIME datetime est une valeur de 64 bits utilisée par les systèmes d’exploitation Windows 32 bits. Le format VT_DATE est une valeur de variante de date et heure d’automatisation utilisée par Visual Basic et ActiveX. Le tableau suivant répertorie les méthodes de conversion.
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 en utilisant une date FILETIME comme entrée. |
SWbemDateTime.SetVarDate | Définit une propriété DATETIME en utilisant une date VT_DATE comme entrée. |