_tzset
Define as variáveis de ambiente de tempo.
Importante
Esta API não pode ser usada em aplicativos que executam no Tempo de Execução do Windows.Para obter mais informações, consulte Funções CRT sem suporte pelo /ZW.
void _tzset( void );
Comentários
A função _tzset usa a configuração atual da variável de ambiente TZ para atribuir valores a três variáveis globais: _daylight, _timezone e _tzname. Essas variáveis são usadas pelas funções _ftime e localtime para fazer correções de UTC (tempo universal coordenado) para hora local, e pela função time para calcular o UTC do tempo do sistema. Use a seguinte sintaxe para definir a variável de ambiente de TZ :
set TZ=tzn[+ | –]hh[:mm[:ss] ][dzn]
tzn
Nome do fuso horário de três letras, como PST. Você deve especificar o deslocamento correto do horário local ao UTC.hh
Diferença em horas entre o UTC e o horário local. O sinal de mais (+) é opcional para valores positivos.mm
Minutos. Separado de hh por dois-pontos (:).ss
Segundos. Separado de mm por dois-pontos (:).dzn
Fuso horário do horário de verão de três letras, como PDT. Se o horário de verão nunca é aplicado na localidade, defina TZ sem um valor para dzn. A biblioteca em tempo de execução C assume as regras dos Estados Unidos para implementar o cálculo de horário de verão (DST).
Dica
Tenha cuidado ao calcular o sinal da diferença de tempo.Como a diferença de tempo é o deslocamento do horário local para UTC (e não o contrário), seu sinal pode ser o oposto do que você esperava intuitivamente.Para fusos horários depois do UTC, a diferença de tempo é negativa; para os fusos horários antes do UTC, a diferença é positiva.
Por exemplo, para definir a variável de ambiente TZ para corresponder ao fuso horário atual na Alemanha, digite o seguinte na linha de comando:
set TZ=GST-1GDT
Esse comando usa GST para indicar o horário padrão alemão, supõe que o UTC está uma hora atrás da Alemanha (ou, em outras palavras, que a Alemanha está uma hora à frente do UTC) e supõe que a Alemanha cumpre o horário de verão.
Se o valor de TZ não estiver definido, _tzset tentará usar as informações de fuso horário especificadas pelo sistema operacional. No sistema operacional Windows, essa informação é especificada no aplicativo de data/hora no painel de controle. Se _tzset não puder obter essas informações, ele usará PST8PDT por padrão, que significa o fuso horário do pacífico.
Com base no valor da variável de ambiente TZ, os valores a seguir são atribuídos a variáveis globais _daylight, _timezone e _tzname quando _tzset é chamado:
Variável global |
Descrição |
Valor padrão |
---|---|---|
_daylight |
Valor diferente de zero se uma zona de horário de verão for especificada na configuração de TZ ; caso contrário, 0. |
1 |
_timezone |
Diferença em segundos entre o horário local e o UTC. |
28800 (28.800 segundos igual a 8 horas) |
_tzname[0] |
Valor de cadeia de caracteres do nome do fuso horário da variável de ambiente TZ; vazia se TZ não for definida. |
PST |
_tzname[1] |
Valor da cadeia de caracteres do fuso horário do horário de verão; se este for omitido da variável de ambiente TZ. |
PDT |
Os valores padrão mostrados na tabela anterior para _daylight e a matriz _tzname correspondem a "PST8PDT". Se a zona de DST for omitida da variável de ambiente TZ, o valor de _daylight será 0 e as funções _ftime, gmtime e localtime retornarão 0 para os sinalizadores de DST.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_tzset |
<time.h> |
Para obter mais informações, consulte Compatibilidade.
Exemplo
// 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 );
}
Equivalência do .NET Framework
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas.