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 |
|
Archivo DLL |
|
Consulte también