classe Win32_TimeZone

La classe WMI Win32_TimeZone représente les informations de fuseau horaire d’un système informatique exécutant Windows, ce qui inclut les modifications requises pour la transition vers l’heure d’été.

La syntaxe suivante est simplifiée par rapport au code MOF (Managed Object Format) et inclut toutes les propriétés héritées. Les propriétés et les méthodes sont dans l’ordre alphabétique, et non dans l’ordre MOF.

Syntaxe

[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;
};

Membres

La classe Win32_TimeZone a les types de membres suivants :

Propriétés

La classe Win32_TimeZone possède ces propriétés.

Décalage

Type de données : sint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| Biais »), Unités (« minutes »)

Biais actuel pour la traduction d’heure locale. Le biais est la différence entre le temps universel coordonné (UTC) et l’heure locale. Toutes les traductions entre l’heure UTC et l’heure locale sont basées sur la formule suivante : UTC = heure locale - bias. Cette propriété est requise.

Caption

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : MaxLen (64)

Brève description textuelle de l’objet actif.

Cette propriété est héritée de CIM_Setting.

DaylightBias

Type de données : sint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| DaylightBias »), Unités (« minutes »)

Valeur de biais à utiliser lors des traductions d’heure locale qui se produisent à l’heure d’été. Cette propriété est ignorée si une valeur pour la propriété DaylightDay n’est pas fournie. La valeur de cette propriété est ajoutée à la propriété Bias pour former le biais utilisé à l’heure d’été. Dans la plupart des fuseaux horaires, la valeur de cette propriété est -60.

Jour d’été

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| DaylightDate|wDay »)

DaylightDayOfWeek du DaylightMonth lorsque la transition de l’heure standard à l’heure d’été se produit sur ce système d’exploitation.

Exemple : si le jour de transition (DaylightDayOfWeek) se produit un dimanche, la valeur « 1 » indique le premier dimanche du DaylightMonth, « 2 » indique le deuxième dimanche, et ainsi de suite. La valeur « 5 » indique la dernière DaylightDayOfWeek du mois.

DaylightDayOfWeek

Type de données : uint8

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| DaylightDate|wDayOfWeek »)

Jour de la semaine où la transition de l’heure standard à l’heure d’été se produit sur un système d’exploitation.

Dimanche (0)

Lundi (1)

Mardi (2)

Mercredi (3)

Jeudi (4)

Vendredi (5)

Samedi (6)

Exemple : 1

DaylightHour

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| DaylightDate|wHour »)

Heure du jour où la transition de l’heure standard à l’heure d’été se produit sur un système d’exploitation.

Exemple : 2

DaylightMilliseconde

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| DaylightDate|wMilliseconds »)

Milliseconde de daylightSecond lorsque la transition de l’heure standard à l’heure d’été se produit sur un système d’exploitation.

DaylightMinute

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| DaylightDate|wMinute »)

Minute de DaylightHour lorsque la transition de l’heure standard à l’heure d’été se produit sur un système d’exploitation.

Exemple : 59

DaylightMonth

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| DaylightDate|wMonth »)

Mois où la transition de l’heure standard à l’heure d’été se produit sur un système d’exploitation.

Janvier (1)

Février (2)

Mars (3)

Avril (4)

Mai (5)

Juin (6)

Juillet (7)

Août (8)

Septembre (9)

Octobre (10)

Novembre (11)

Décembre (12)

Nom de la lumière du jour

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : MaxLen (256), MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| DaylightName »)

Fuseau horaire représenté lorsque l’heure d’été est en vigueur.

Exemple : « EDT » (heure d’été de l’Est)

DaylightSecond

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| DaylightDate|wSecond »)

Deuxième de DaylightMinute lorsque la transition de l’heure standard à l’heure d’été se produit sur un système d’exploitation.

Exemple : 59

DaylightYear

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| DaylightDate|wYear »)

Année où l’heure d’été est en vigueur. Cette propriété n’est pas obligatoire.

Exemple : 1997

Description

Type de données : chaîne

Type d'accès : Lecture seule

Description textuelle de l’objet actif.

Cette propriété est héritée de CIM_Setting.

SettingID

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : MaxLen (256)

Identificateur par lequel l’objet actuel est connu.

Cette propriété est héritée de CIM_Setting.

StandardBias

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| StandardBias »), Unités (« minutes »)

Valeur de biais à utiliser lorsque l’heure d’été n’est pas en vigueur. Cette propriété est ignorée si une valeur pour StandardDay n’est pas fournie. La valeur de cette propriété est ajoutée à la propriété Bias pour former le biais pendant l’heure standard.

Exemple : 0

StandardDay

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| StandardDate|wDay »)

StandardDayOfWeek du StandardMonth lorsque la transition de l’heure d’été à l’heure standard se produit sur un système d’exploitation.

Si le jour de transition (StandardDayOfWeek) se produit un dimanche, la valeur « 1 » indique le premier dimanche du StandardMonth, « 2 » indique le deuxième dimanche, et ainsi de suite. La valeur « 5 » indique le dernier StandardDayOfWeek du mois.

StandardDayOfWeek

Type de données : uint8

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| StandardDate|wDayOfWeek »)

Jour de la semaine où la transition de l’heure d’été à l’heure standard se produit sur un système d’exploitation.

Dimanche (0)

Lundi (1)

Mardi (2)

Mercredi (3)

Jeudi (4)

Vendredi (5)

Samedi (6)

StandardHour

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| StandardDate|wHour »)

Heure du jour où la transition de l’heure d’été à l’heure standard se produit sur un système d’exploitation.

Exemple : 11

StandardMilliseconde

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| StandardDate|wMilliseconds »)

Milliseconde de standardSecond lorsque la transition de l’heure d’été à l’heure standard se produit sur un système d’exploitation.

StandardMinute

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| StandardDate|wMinute »)

Minute du StandardDay lorsque la transition de l’heure d’été à l’heure standard se produit sur un système d’exploitation.

Exemple : 59

StandardMonth

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| StandardDate|wMonth »)

Mois où la transition de l’heure d’été à l’heure standard se produit sur un système d’exploitation.

Janvier (1)

Février (2)

Mars (3)

Avril (4)

Mai (5)

Juin (6)

Juillet (7)

Août (8)

Septembre (9)

Octobre (10)

Novembre (11)

Décembre (12)

StandardName

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : key, MaxLen (256), MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| StandardName »)

Nom du fuseau horaire représenté lorsque l’heure standard est en vigueur.

Exemple : « EST » (Eastern Standard Time)

StandardSecond

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| StandardDate|wSecond »)

Deuxième du StandardMinute lorsque la transition de l’heure d’été à l’heure standard se produit sur un système d’exploitation.

Exemple : 59

StandardYear

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de temps| TIME_ZONE_INFORMATION| StandardDate|wYear »)

Année où l’heure standard est en vigueur. Cette propriété n’est pas obligatoire.

Exemple : 1997

Notes

La classe Win32_TimeZone est dérivée de CIM_Setting.

Vous ne pouvez pas utiliser les formats de date et d’heure standard( 18/10/2002) lors de l’écriture de requêtes WMI. Au lieu de cela, vous devez convertir toutes les dates utilisées dans vos requêtes au format UTC. Cela nécessite deux étapes : 1) Vous devez déterminer le décalage (en minutes) entre votre fuseau horaire et l’heure moyenne de Greenwich, et 2) vous devez convertir le 18/10/2002 en valeur UTC.

Détermination du décalage par rapport à l’heure moyenne de Greenwich

Certes, WMI rend difficile l’utilisation des dates et des heures ; heureusement, WMI facilite au moins la détermination du décalage entre votre fuseau horaire et l’heure moyenne de Greenwich. La classe WMI Win32_TimeZone inclut une propriété - Bias - qui retourne le décalage GMT.

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

Conversion d’une date en valeur UTC

Après avoir déterminé le décalage GMT, vous devez convertir une date standard telle que le 18/10/2002 en une date UTC. Pour convertir une date standard en date UTC, vous pouvez utiliser des fonctions de date VBScript telles que Year, Month et Day pour isoler les composants individuels qui composent une date UTC. Une fois que vous avez des valeurs individuelles pour ces composants, vous pouvez les concaténer de la même manière que n’importe quelle autre valeur de chaîne. Les dates UTC sont traitées comme des chaînes, car le décalage GMT doit être ajouté à la fin. Si la date était considérée comme un nombre, cette valeur :

20011018113047.000000-480

Serait traité par erreur comme une équation mathématique (parenthèses ajoutées pour plus de clarté) :

(20011018113047.000000) - (480)

Par exemple, à la date du 18/10/2002, les composants individuels sont les suivants :

  • Année : 2002
  • Mois : 10
  • Jour: 18

Le script doit combiner ces trois valeurs, la chaîne « 113047.000000 » (représentant l’heure, y compris les millisecondes) et le décalage GMT pour dériver une date UTC. Par exemple, (parenthèses ajoutées à nouveau pour plus de clarté) :

(2002) & (10) & (18) & (113047.000000) & (-480)

Notes

Vous pouvez utiliser les fonctions VBScript Hour, Minute et Second pour convertir la partie heure d’une date UTC. Ainsi, une heure telle que 11:30:47 serait convertie en 113047.

 

Il y a un facteur de complaisance. Le mois doit prendre les positions 5 et 6 dans la chaîne ; le jour doit prendre les positions 7 et 8. Ce n’est pas un problème avec le mois 10 et le jour 18. Mais comment obtenir le 5 juillet (mois 7, jour 5) pour remplir les postes requis? La réponse consiste à ajouter un zéro de début à chaque valeur, en modifiant ainsi la valeur 7 par 07 et la valeur 5 par 05.

Pour ce faire, utilisez la fonction VBScript Len pour case activée la longueur (nombre de caractères) dans le mois et le jour. Si la longueur est 1 (ce qui signifie qu’il n’y a qu’un seul caractère), ajoutez un zéro non significatif. Ainsi:

If Len(dtmMonth) = 1 Then
    dtmMonth = "0" & dtmMonth
End If

Exemples

L’exemple VBScript suivant convertit la date actuelle en date UTC.

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)

L’exemple VBScript suivantdétermine le décalage GMT, puis convertit une date actuelle spécifiée (dans ce cas, le 18/10/2002) au format date-heure UTC. Une fois la date convertie, cette valeur est utilisée pour rechercher un ordinateur et retourne une liste de tous les dossiers créés après le 18/10/2002.

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

L’exemple de code VBScript suivant affiche les paramètres des instances Win32_TimeZone.

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

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista
Serveur minimal pris en charge
Windows Server 2008
Espace de noms
Racine\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Voir aussi

CIM_Setting

Classes du système d’exploitation

SWbemDateTime

Format de date et d’heure

Tâches WMI : dates et heures