estructura DYNAMIC_TIME_ZONE_INFORMATION (timezoneapi.h)
Especifica la configuración de una zona horaria y el horario de verano dinámico.
Sintaxis
typedef struct _TIME_DYNAMIC_ZONE_INFORMATION {
LONG Bias;
WCHAR StandardName[32];
SYSTEMTIME StandardDate;
LONG StandardBias;
WCHAR DaylightName[32];
SYSTEMTIME DaylightDate;
LONG DaylightBias;
WCHAR TimeZoneKeyName[128];
BOOLEAN DynamicDaylightTimeDisabled;
} DYNAMIC_TIME_ZONE_INFORMATION, *PDYNAMIC_TIME_ZONE_INFORMATION;
Miembros
Bias
La diferencia actual para la conversión de hora local en este equipo, en minutos. El sesgo es la diferencia, en minutos, 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
Este miembro es obligatorio.
StandardName[32]
Descripción de la hora estándar. Por ejemplo, "EST" podría indicar la hora estándar oriental. La cadena se devolverá sin cambios por la función GetDynamicTimeZoneInformation . Esta cadena puede estar vacía.
StandardDate
Estructura SYSTEMTIME que contiene una fecha y hora local cuando se produce la transición del horario de verano a la hora estándar en este sistema operativo. Si la zona horaria no admite el horario de verano o si el autor de la llamada necesita deshabilitar el horario de verano, el miembro wMonth de la estructura SYSTEMTIME debe ser cero. Si se especifica esta fecha, también se debe especificar el miembro DaylightDate de esta estructura. De lo contrario, el sistema supone que los datos de zona horaria no son válidos y no se aplicará ningún cambio.
Para seleccionar el día correcto en el mes, establezca el miembro wYear en cero, los miembros wHour y wMinute en el tiempo de transición, el miembro wDayOfWeek en el día de la semana correspondiente y el miembro wDay para indicar la aparición del día de la semana en el mes (de 1 a 5, donde 5 indica la aparición final durante el mes si ese día de la semana no se produce 5 veces).
Con esta notación, especifique 02:00 el primer domingo de abril de la siguiente manera: wHour = 2, wMonth = 4, wDayOfWeek = 0, wDay = 1. Especifique 02:00 el último jueves de octubre de la siguiente manera: wHour = 2, wMonth = 10, wDayOfWeek = 4, wDay = 5.
Si el miembro wYear no es cero, la fecha de transición es absoluta; solo se producirá una vez. De lo contrario, es una fecha relativa que se produce anualmente.
StandardBias
Valor de sesgo que se va a usar durante las traducciones de hora local que se producen durante el tiempo estándar. Este miembro se omite si no se proporciona un valor para el miembro StandardDate .
Este valor se agrega al valor del miembro Bias para formar el sesgo utilizado durante el tiempo estándar. En la mayoría de las zonas horarias, el valor de este miembro es cero.
DaylightName[32]
Descripción del horario de verano (DST). Por ejemplo, "PDT" podría indicar el horario de verano del Pacífico. La cadena se devolverá sin cambios por la función GetDynamicTimeZoneInformation . Esta cadena puede estar vacía.
DaylightDate
Estructura SYSTEMTIME que contiene una fecha y hora local en la que se produce la transición de la hora estándar al horario de verano en este sistema operativo. Si la zona horaria no admite el horario de verano o si el autor de la llamada necesita deshabilitar el horario de verano, el miembro wMonth de la estructura SYSTEMTIME debe ser cero. Si se especifica esta fecha, también se debe especificar el miembro StandardDate de esta estructura. De lo contrario, el sistema supone que los datos de zona horaria no son válidos y no se aplicará ningún cambio.
Para seleccionar el día correcto en el mes, establezca el miembro wYear en cero, los miembros wHour y wMinute en el tiempo de transición, el miembro wDayOfWeek en el día de la semana correspondiente y el miembro wDay para indicar la aparición del día de la semana en el mes (de 1 a 5, donde 5 indica la aparición final durante el mes si ese día de la semana no se produce 5 veces).
Si el miembro wYear no es cero, la fecha de transición es absoluta; solo se producirá una vez. De lo contrario, es una fecha relativa que se produce anualmente.
DaylightBias
Valor de sesgo que se va a usar durante las traducciones de hora local que se producen durante el horario de verano. Este miembro se omite si no se proporciona un valor para el miembro DaylightDate .
Este valor se agrega al valor del miembro Bias para formar el sesgo utilizado durante el horario de verano. En la mayoría de las zonas horarias, el valor de este miembro es –60.
TimeZoneKeyName[128]
Nombre de la clave del Registro de zona horaria en el equipo local. Para obtener más información, vea la sección Comentarios.
DynamicDaylightTimeDisabled
Indica si el horario de verano dinámico está deshabilitado. Establecer este miembro en TRUE deshabilita el horario de verano dinámico, lo que hace que el sistema use un conjunto fijo de fechas de transición.
Para restaurar el horario de verano dinámico, llame a la función SetDynamicTimeZoneInformation con DynamicDaylightTimeDisabled establecido en FALSE. El sistema leerá las fechas de transición del año actual en la próxima actualización, el siguiente reinicio del sistema o el final del año natural (lo que ocurra primero).
Al llamar a la función GetDynamicTimeZoneInformation, este miembro es TRUE si la zona horaria se estableció mediante la función SetTimeZoneInformation en lugar de SetDynamicTimeZoneInformation o si el usuario ha deshabilitado esta característica mediante la aplicación Fecha y hora en Panel de control.
Para deshabilitar el horario de verano, establezca este miembro en TRUE, borre los miembros StandardDate y DaylightDate y llame a SetDynamicTimeZoneInformation. Para restaurar el horario de verano, llame a SetDynamicTimeZoneInformation con DynamicDaylightTimeDisabled establecido en FALSE.
Comentarios
El horario de verano dinámico proporciona compatibilidad con zonas horarias cuyos límites para el horario de verano cambian de año a año. Esta característica permite una actualización más sencilla de los sistemas, especialmente para las configuraciones regionales en las que los límites de DST anual se conocen de antemano. Una vez actualizada la zona horaria, la configuración de zona horaria actual se aplica a todas las operaciones de tiempo, incluso cuando se produjo la hora en cuestión antes de que cambiara la zona horaria. Por lo tanto, es mejor almacenar las horas UTC y convertirlas en la zona horaria local actual.
Puede establecer las fechas de transición del año actual mediante la función SetDynamicTimeZoneInformation . Para establecer fechas de transición futuras, debe agregar entradas a los datos del Registro. La configuración de la hora de verano dinámica se almacena en la siguiente clave del Registro:
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion Time Zones time_zone_name Dynamic DST
Cada clave DST dinámica incluye los siguientes valores del Registro.
Valor del Registro | Tipo | Descripción |
---|---|---|
FirstEntry | REG_DWORD | Primer año de la tabla. |
LastEntry | REG_DWORD | El año pasado en la tabla. |
year1 | REG_BINARY |
La siguiente información de zona horaria.
|
year2 | REG_BINARY | Estructura REG_TZI_FORMAT . |
Anhelan | REG_BINARY | Estructura REG_TZI_FORMAT . |
Para obtener más información sobre otros valores en la clave de Zonas horarias , consulte TIME_ZONE_INFORMATION.
StandardName y DaylightName se localizan según el idioma de la interfaz de usuario predeterminado del usuario actual.
Requisitos
Cliente mínimo compatible | Windows Vista [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP] |
Encabezado | timezoneapi.h (incluya Timezoneapi.h, Windows.h) |