Clase TimeZone de Win32 _

La clase  WMI _ TimeZone de Win32 representa la información de zona horaria de un sistema informático que ejecuta Windows, que incluye los cambios necesarios para la transición a la transición del horario de verano.

La siguiente sintaxis se simplifica desde el código de Managed Object Format (MOF) e incluye todas las propiedades heredadas. Las propiedades y los métodos están en orden alfabético, no en el orden MOF.

Sintaxis

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

Members

La clase _ TimeZone de Win32 tiene estos tipos de miembros:

Propiedades

La clase _ TimeZone de Win32 tiene estas propiedades.

Sesgo

Tipo de datos: sint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API | Time Structures TIME ZONE INFORMATION | _ _ Bias"), | Units ("minutes")

Sesgo actual para la traducción de la hora local. El sesgo es la diferencia entre la hora universal coordinada (UTC) y la hora local. Todas las traducciones entre utc y hora local se basan en la fórmula siguiente: UTC = hora local - sesgo. Esta propiedad es obligatoria.

Caption

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: MaxLen (64)

Breve descripción textual del objeto actual.

Esta propiedad se hereda de cim _ setting.

DaylightBias

Tipo de datos: sint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo win32API | TIME ZONE | _ _ INFORMATION | DaylightBias"), unidades ("minutos")

Valor de sesgo que se usará durante las traducciones de hora local que se producen durante el horario de verano. Esta propiedad se omite si no se proporciona un valor para la propiedad DaylightDay. El valor de esta propiedad se agrega a la propiedad Bias para formar el sesgo usado durante el horario de verano. En la mayoría de las zonas horarias, el valor de esta propiedad es -60.

Día de verano

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | DaylightDate | wDay")

DaylightDayOfWeek del Mes de verano cuando se produce la transición del horario estándar al horario de verano en este sistema operativo.

Ejemplo: si el día de transición (DaylightDayOfWeek) se produce en un domingo, el valor "1" indica el primer domingo del mes de verano , "2" indica el segundo domingo, y así sucesivamente. El valor "5" indica la última daylightDayOfWeek del mes.

DaylightDayOfWeek

Tipo de datos: uint8

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | DaylightDate | wDayOfWeek")

Día de la semana en el que se produce la transición del horario estándar al horario de verano en un sistema operativo.

Domingo (0)

Lunes (1)

Martes (2)

Miércoles (3)

Jueves (4)

Viernes (5)

Sábado (6)

Ejemplo: 1

DaylightHour

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | DaylightDate | wHour")

Hora del día en la que se produce la transición del horario estándar al horario de verano en un sistema operativo.

Ejemplo: 2

DaylightMillisecond

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API | Time Structures TIME ZONE | _ _ INFORMATION | DaylightDate | wMilliseconds")

Milisegundo de DaylightSecond cuando se produce la transición del horario estándar al horario de verano en un sistema operativo.

DaylightMinute

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | DaylightDate | wMinute")

Minuto del horario de verano cuando se produce la transición del horario estándar al horario de verano en un sistema operativo.

Ejemplo: 59

DaylightMonth

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | DaylightDate | wMonth")

Mes en el que se produce la transición del horario estándar al horario de verano en un sistema operativo.

Enero (1)

Febrero (2)

Marzo (3)

Abril (4)

Mayo (5)

Junio (6)

Julio (7)

Agosto (8)

Septiembre (9)

Octubre (10)

Noviembre (11)

Diciembre (12)

DaylightName

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: MaxLen (256), MappingStrings ("Win32API | Time Structures TIME ZONE | _ _ INFORMATION | DaylightName")

Zona horaria que se representa cuando el horario de verano está en vigor.

Ejemplo: "EDT" (hora de verano del Este)

DaylightSecond

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | DaylightDate | wSecond")

Segundo de DaylightMinute cuando se produce la transición del horario estándar al horario de verano en un sistema operativo.

Ejemplo: 59

DaylightYear

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | DaylightDate | wYear")

Año en el que está en vigor el horario de verano. Esta propiedad no es necesaria.

Ejemplo: 1997

Descripción

Tipo de datos: cadena

Tipo de acceso: solo lectura

Descripción textual del objeto actual.

Esta propiedad se hereda de la configuración de CIM _.

SettingID

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: MaxLen (256)

Identificador por el que se conoce el objeto actual.

Esta propiedad se hereda de la configuración de CIM _.

StandardBias

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | StandardBias"), Unidades ("minutos")

Valor de sesgo que se usará cuando el horario de verano no esté en vigor. Esta propiedad se omite si no se proporciona un valor para StandardDay. El valor de esta propiedad se agrega a la propiedad Bias para formar el sesgo durante el tiempo estándar.

Ejemplo: 0

StandardDay

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | StandardDate | wDay")

StandardDayOfWeek del Mes Estándar cuando se produce la transición del horario de verano al horario estándar en un sistema operativo.

Si el día de transición (StandardDayOfWeek) se produce en un domingo, el valor "1" indica el primer domingo del Mes Estándar, "2" indica el segundo domingo, y así sucesivamente. El valor "5" indica el último StandardDayOfWeek del mes.

StandardDayOfWeek

Tipo de datos: uint8

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | StandardDate | wDayOfWeek")

Día de la semana en el que se produce la transición del horario de verano al horario estándar en un sistema operativo.

Domingo (0)

Lunes (1)

Martes (2)

Miércoles (3)

Jueves (4)

Viernes (5)

Sábado (6)

StandardHour

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | StandardDate | wHour")

Hora del día en la que se produce la transición del horario de verano al horario estándar en un sistema operativo.

Ejemplo: 11

StandardMillisecond

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | StandardDate | wMilliseconds")

Milisegundo de StandardSecond cuando se produce la transición del horario de verano al horario estándar en un sistema operativo.

StandardMinute

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | StandardDate | wMinute")

Minuto de StandardDay cuando se produce la transición del horario de verano al horario estándar en un sistema operativo.

Ejemplo: 59

StandardMonth

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | StandardDate | wMonth")

Mes en el que se produce la transición del horario de verano al horario estándar en un sistema operativo.

Enero (1)

Febrero (2)

Marzo (3)

Abril (4)

Mayo (5)

Junio (6)

Julio (7)

Agosto (8)

Septiembre (9)

Octubre (10)

Noviembre (11)

Diciembre (12)

StandardName

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: key, MaxLen (256), MappingStrings ("Win32API | Time Structures TIME ZONE | _ _ INFORMATION | StandardName")

Nombre de la zona horaria que se representa cuando está en vigor la hora estándar.

Ejemplo: "EST" (Hora estándar del Este)

StandardSecond

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | StandardDate | wSecond")

Segundo de StandardMinute cuando se produce la transición del horario de verano al horario estándar en un sistema operativo.

Ejemplo: 59

StandardYear

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Estructuras de tiempo de Win32API | TIME ZONE | _ _ INFORMATION | StandardDate | wYear")

Año en el que está en vigor la hora estándar. Esta propiedad no es necesaria.

Ejemplo: 1997

Observaciones

La clase _ TimeZone de Win32 se deriva de cim _ setting.

No puede usar formatos de fecha y hora estándar (como 18/10/2002) al escribir consultas WMI. En su lugar, debe convertir las fechas usadas en las consultas al formato UTC. Esto requiere dos pasos: 1) Debe determinar el desplazamiento (diferencia en minutos) entre la zona horaria y la hora media de Greenwich, y 2) debe convertir 10/18/2002 en un valor UTC.

Determinar el desplazamiento de la hora media de Greenwich

Sin embargo, WMI dificulta el trabajo con fechas y horas. Afortunadamente, WMI al menos facilita la determinación del desplazamiento entre la zona horaria y la hora media de Greenwich. La clase WMI Win32 _ TimeZone incluye una propiedad (Bias) que devuelve el desplazamiento 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

Convertir una fecha en un valor UTC

Después de determinar el desplazamiento GMT, debe convertir una fecha estándar como 10/18/2002 a una fecha UTC. Para convertir una fecha estándar en una fecha UTC, puede usar funciones de fecha de VBScript como Year, Month y Day para aislar los componentes individuales que conste una fecha UTC. Después de tener valores individuales para estos componentes, puede concatenarlos de la misma manera que lo haría con cualquier otro valor de cadena. Las fechas UTC se tratan como cadenas porque el desplazamiento GMT debe anexarse al final. Si la fecha se ha visto como un número, este valor:

20011018113047.000000-480

Se trataría erróneamente como una ecuación matemática (paréntesis agregados para mayor claridad):

(20011018113047.000000) - (480)

Por ejemplo, en la fecha 18/10/2002, los componentes individuales son:

  • Año: 2002
  • Mes: 10
  • Día: 18

El script tendría que combinar estos tres valores, la cadena "113047.000000" (que representa la hora, incluidos los milisegundos) y el desplazamiento GMT para derivar una fecha UTC. Por ejemplo, (se han agregado paréntesis de nuevo para mayor claridad):

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

Nota

Puede usar las funciones de VBScript Hour, Minute y Second para convertir la parte de hora de una fecha UTC. Por lo tanto, una hora como 11:30:47 a.m. se convertiría en 113047.

Hay un factor complicante. El mes debe tomar las posiciones 5 y 6 de la cadena; el día debe tomar las posiciones 7 y 8. Esto no es un problema con el mes 10 y el día 18. Pero, ¿cómo se obtiene el 5 de julio (7 de mes, día 5) para rellenar las posiciones necesarias? La respuesta es agregar un cero inicial a cada valor, cambiando así el 7 a 07 y el 5 a 05.

Para ello, use la función VBScript Len para comprobar la longitud (número de caracteres) del mes y el día. Si la longitud es 1 (lo que significa que solo hay un carácter), agregue un cero inicial. Así:

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

Ejemplos

En el siguiente ejemplo de VBScript se convierte la fecha actual en una fecha 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)

El siguiente ejemplo de VBScript determina el desplazamiento GMT y, a continuación, convierte una fecha actual especificada (en este caso, 18/10/10/2002) al formato de fecha y hora UTC. Una vez convertida la fecha, ese valor se usa para buscar en un equipo y devuelve una lista de todas las carpetas que se crearon después del 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

En el siguiente ejemplo de código de VBScript se muestra la configuración de las instancias de 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

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Espacio de nombres
\CIMV2 raíz
MOF
CIMWin32.mof
Archivo DLL
CIMWin32.dll

Consulte también

Configuración de CIM _

Clases de sistema operativo

SWbemDateTime

Formato de fecha y hora

Tareas wmi: fechas y horas