_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
, _timezone
y _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
, _timezone
y _tzname
cuando se llama a _tzset
:
Variable global | Descripción | Default value |
---|---|---|
_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 _ftime
funciones , gmtime
y 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