Compartir a través de


Win32_TimeZone clase

La Win32_TimeZoneclase WMI representa la información de zona horaria de un sistema informático que ejecuta Windows, que incluye los cambios necesarios para realizar la transición a la transición al 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 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;
};

Miembros

La clase Win32_TimeZone tiene estos tipos de miembros:

Propiedades

La clase Win32_TimeZone tiene estas propiedades.

Sesgo

Tipo de datos: sint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| Sesgo"), unidades ("minutos")

Sesgo actual para la traducción de hora local. El sesgo es la diferencia entre la hora universal coordinada (UTC) y la hora local. Todas las traducciones entre la hora UTC y la 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)

Descripción textual breve del objeto actual.

Esta propiedad se hereda de CIM_Setting.

DaylightBias

Tipo de datos: sint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de tiempo| 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 utilizado durante el horario de verano. En la mayoría de las zonas horarias, el valor de esta propiedad es -60.

DaylightDay

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| DaylightDate|wDay")

DaylightDayOfWeek de DaylightMonth 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, etc. El valor "5" indica el último DaylightDayOfWeek del mes.

DaylightDayOfWeek

Tipo de datos: uint8

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| DaylightDate|wDayOfWeek")

Día de la semana en el que se produce la transición de la hora 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 ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| DaylightDate|wHour")

Hora del día en que se produce la transición de la hora 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| Estructuras de tiempo| TIME_ZONE_INFORMATION| DaylightDate|wMilliseconds")

Milisegundos del 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 ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| DaylightDate|wMinute")

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

Ejemplo: 59

DaylightMonth

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de tiempo| 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| Estructuras de tiempo| TIME_ZONE_INFORMATION| DaylightName")

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

Ejemplo: "EDT" (horario de verano oriental)

DaylightSecond

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de tiempo| 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

Día de verano

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| DaylightDate|wYear")

Año en el que el horario de verano está en vigor. 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 CIM_Setting.

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 CIM_Setting.

StandardBias

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| StandardBias"), Unidades ("minutos")

Valor de sesgo que se va a 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 ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| StandardDate|wDay")

StandardDayOfWeek de StandardMonth cuando se produce la transición del horario de verano a la hora 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 StandardMonth, "2" indica el segundo domingo, etc. El valor "5" indica la última standardDayOfWeek del mes.

StandardDayOfWeek

Tipo de datos: uint8

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| StandardDate|wDayOfWeek")

Día de la semana en que se produce la transición del horario de verano a la hora 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 ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| StandardDate|wHour")

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

Ejemplo: 11

StandardMillisecond

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| StandardDate|wMilliseconds")

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

StandardMinute

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| StandardDate|wMinute")

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

Ejemplo: 59

StandardMonth

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| StandardDate|wMonth")

Mes en el que se produce la transición del horario de verano a la hora 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| Estructuras de tiempo| TIME_ZONE_INFORMATION| StandardName")

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

Ejemplo: "EST" (hora estándar oriental)

StandardSecond

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| StandardDate|wSecond")

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

Ejemplo: 59

StandardYear

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de tiempo| TIME_ZONE_INFORMATION| StandardDate|wYear")

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

Ejemplo: 1997

Comentarios

La clase Win32_TimeZone se deriva de CIM_Setting.

No se pueden usar formatos de fecha y hora estándar, como 10/18/2002, al escribir consultas WMI. En su lugar, debe convertir las fechas usadas en las consultas a 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 a un valor UTC.

Determinar el desplazamiento de la hora media de Greenwich

Ciertamente, 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 a una fecha UTC, puede usar funciones de fecha vbScript como Year, Month y Day para aislar los componentes individuales que componen una fecha UTC. Después de tener valores individuales para estos componentes, puede concatenarlos de la misma manera que 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 10/18/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.0000000" (que representa la hora, incluidos milisegundos) y el desplazamiento GMT para derivar una fecha UTC. Por ejemplo, (paréntesis agregados 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 las 11:30:47 A.M. se convertirá en 113047.

 

Hay un factor complicado. El mes debe ocupar posiciones 5 y 6 en la cadena; el día debe ocupar las posiciones 7 y 8. Este no es ningún problema con el mes 10 y el día 18. ¿Pero cómo obtienes el 5 de julio (mes 7, día 5) para llenar las posiciones necesarias? La respuesta es agregar un cero inicial a cada valor, lo que cambia de 7 a 07 y 5 a 05.

Para ello, use la función Len de VBScript para comprobar la longitud (número de caracteres) en el 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 VBScriptdetermines el desplazamiento GMT y, a continuación, convierte una fecha actual especificada (en este caso, 18/18/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 10/18/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 ejemplo de código de VBScript siguiente se muestran los valores de Win32_TimeZone instancias.

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
Root\CIMV2
MOF
CIMWin32.mof
Archivo DLL
CIMWin32.dll

Consulte también

CIM_Setting

Clases de sistema operativo

SWbemDateTime

Formato de fecha y hora

Tareas de WMI: fechas y horas