_tzset

Establece variables de tiempo del entorno.

Importante

Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución. Para obtener más información, vea Funciones de CRT no admitidas en aplicaciones de la Plataforma universal de Windows.

Sintaxis

void _tzset( void );

Comentarios

La función _tzset usa la configuración actual de la variable de entorno TZ para asignar valores a tres variables globales: _daylight, _timezoney _tzname. Estas variables las usan las _ftime funciones y localtime para realizar correcciones de la hora universal coordinada (UTC) a la hora local y por la time función para calcular UTC desde la hora del sistema. Use la sintaxis siguiente para establecer la variable de entorno TZ :

set TZ=tzn [+|-]hh[:mm[:ss] ][dzn]

tzn
Nombre de la zona horaria de tres letras, por ejemplo PST. Debe especificar el desplazamiento correcto de la hora local a la hora UTC.

hh
Diferencia en horas entre las hora UTC y la hora local. Signo (+) opcional para valores positivos.

mm
Minutos. Se separa de hh mediante dos puntos (:).

ss
Segundos. Se separa de mm mediante dos puntos (:).

dzn
Zona del horario de verano de tres letras, por ejemplo PDT. Si el horario de verano no se aplica nunca en el lugar, establezca TZ sin valor para dzn. La biblioteca en tiempo de ejecución de C usa las reglas de Estados Unidos para implementar el cálculo del horario de verano (DST).

Nota:

Tenga cuidado al calcular el signo de la diferencia de hora. Dado que la diferencia de hora es el desplazamiento de la hora local respecto a la hora UTC (y no a la inversa), el signo puede ser el contrario de lo que cabría esperar intuitivamente. En el caso de las zonas horarias que van por delante de UTC, la diferencia de hora es negativa; en el caso de las que van por detrás de la hora UTC, la diferencia es positiva.

Por ejemplo, para establecer la TZ variable de entorno para que corresponda a la zona horaria actual de Alemania, escriba este comando en la línea de comandos:

set TZ=GST-1GDT

Este comando usa GST para indicar la hora estándar alemana. Se supone que la hora UTC está detrás de Alemania (o, en otras palabras, que Alemania es una hora antes de utc). Y, supone que Alemania observa el horario de verano.

Si no se establece el TZ valor, _tzset intenta usar la información de zona horaria especificada por el sistema operativo. En el sistema operativo Windows, esta información se especifica en la aplicación de fecha y hora del Panel de control. Si _tzset no puede obtener esta información, usa PST8PDT de forma predeterminada, lo que significa la zona horaria del Pacífico.

En función del valor de la variable de entorno TZ , se asignan los valores siguientes a las variables globales _daylight, _timezoney _tzname cuando se llama a _tzset :

Variable global Descripción Valor predeterminado
_daylight Valor distinto de cero si se especifica una zona de horario de verano en la configuración de TZ ; de lo contrario, 0. 1
_timezone Diferencia en segundos entre las hora local y la hora UTC. 28800 (28 800 segundos es igual a 8 horas)
_tzname[0] Valor de cadena del nombre de zona horaria de la TZ variable de entorno; está vacío si TZ no se ha establecido. PST
_tzname[1] Valor de cadena de la zona de horario de verano; está vacío si la zona de horario de verano se omite de la variable de entorno TZ . PDT

Los valores predeterminados que se muestran en la tabla anterior para _daylight y la _tzname matriz corresponden a "PST8PDT". Si se omite la zona DST de la TZ variable de entorno, el valor de _daylight es 0 y las _ftimefunciones , gmtimey localtime devuelven 0 para sus marcas DST.

De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.

Requisitos

Routine Encabezado necesario
_tzset <time.h>

La _tzset función es específica de Microsoft. Para obtener más información, consulte Compatibilidad.

Ejemplo

// crt_tzset.cpp
// This program uses _tzset to set the global variables
// named _daylight, _timezone, and _tzname. Since TZ is
// not being explicitly set, it uses the system time.

#include <time.h>
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
    _tzset();
    int daylight;
    _get_daylight( &daylight );
    printf( "_daylight = %d\n", daylight );
    long timezone;
    _get_timezone( &timezone );
    printf( "_timezone = %ld\n", timezone );
    size_t s;
    char tzname[100];
    _get_tzname( &s, tzname, sizeof(tzname), 0 );
    printf( "_tzname[0] = %s\n", tzname );
    exit( 0 );
}
_daylight = 1
_timezone = 28800
_tzname[0] = Pacific Standard Time

Consulte también

Administración de tiempo
asctime, _wasctime
_ftime, _ftime32, _ftime64
gmtime, _gmtime32, _gmtime64
localtime, _localtime32, _localtime64
time, _time32, _time64
_utime, _utime32, _utime64, _wutime, _wutime32, _wutime64