_tzset
Define variáveis de ambiente de tempo.
Importante
Esta API não pode ser usada em aplicativos executados no Windows Runtime. Para obter mais informações, confira Funções do CRT sem suporte em aplicativos da Plataforma Universal do Windows.
Sintaxe
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 _ftime
funções and localtime
para fazer correções do UTC (tempo universal coordenado) para a hora local e pela função para calcular o time
UTC da hora do sistema. Use a sintaxe a seguir para definir a variável de ambiente TZ
:
set TZ=
tzn
[+
|-
]hh
[:
mm
[:ss
] ][dzn
]
tzn
Nome de fuso horário de três letras, como PST. Você deve especificar o deslocamento correto da hora local em UTC.
hh
Diferença de horas entre UTC e hora local. Sinal (+) opcional para valores positivos.
mm
Minutos. Separado de hh
por uma vírgula (:
).
ss
Segundos. Separado de mm
por uma vírgula (:
).
dzn
Fuso horário de verão com três letras, como PDT. Se o horário de verão nunca estiver em vigor na localidade, defina TZ
sem um valor para dzn
. A biblioteca em tempo de execução C presume as regras dos Estados Unidos para implementar o cálculo de DST (horário de verão).
Observação
Tome cuidado ao calcular o sinal da diferença de tempo. Como a diferença de tempo é o deslocamento de hora local em UTC (e não o contrário), o sinal pode ser o oposto do que você intuitivamente poderia esperar. Para fusos horários à frente do UTC, a diferença de tempo é negativa; para aqueles antes do UTC, a diferença é positiva.
Por exemplo, para definir a variável de TZ
ambiente para corresponder ao fuso horário atual na Alemanha, insira este comando na linha de comando:
set TZ=GST-1GDT
Este comando usa GST para indicar o horário padrão alemão. Ele assume que o UTC está uma hora atrás da Alemanha (ou em outras palavras, que a Alemanha está uma hora à frente do UTC). E pressupõe que a Alemanha observe o horário de verão.
Se o TZ
valor não estiver definido, _tzset
tentará usar as informações de fuso horário especificadas pelo sistema operacional. No sistema operacional Windows, essas informações são especificadas no aplicativo de Data/Hora no Painel de controle. Se _tzset
não for possível obter essas informações, ele usará PST8PDT por padrão, o que significa o fuso horário do Pacífico.
Com base no valor da variável de ambiente TZ
, os seguintes valores são atribuídos a variáveis globais _daylight
, _timezone
e _tzname
quando _tzset
é chamada:
Variável global | Descrição | Valor padrão |
---|---|---|
_daylight |
Um valor diferente de zero se for especificado um fuso horário de verão na configuração de TZ ; caso contrário, 0. |
1 |
_timezone |
Diferença em segundos entre a hora local e o UTC. | 28800 (28.800 segundos equivalem a 8 horas) |
_tzname[0] |
Valor da cadeia de caracteres do nome do fuso horário da variável de TZ ambiente; vazio se TZ não tiver sido definido. |
PST |
_tzname[1] |
Valor da cadeia de caracteres do fuso horário de verão; vazio se o fuso horário de verão for omitido da variável de ambiente TZ . |
PDT |
Os valores padrão mostrados na tabela anterior para _daylight
e a _tzname
matriz correspondem a "PST8PDT". Se a zona de horário de verão for omitida da TZ
variável de ambiente, o valor de _daylight
será 0 e as _ftime
funções , gmtime
e e localtime
retornarão 0 para seus sinalizadores de horário de verão.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Requisitos
Rotina | Cabeçalho necessário |
---|---|
_tzset |
<time.h> |
A _tzset
função é específica da Microsoft. 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 );
}
_daylight = 1
_timezone = 28800
_tzname[0] = Pacific Standard Time
Confira também
Gerenciamento de tempo
asctime
, _wasctime
_ftime
, _ftime32
, _ftime64
gmtime
, _gmtime32
, _gmtime64
localtime
, _localtime32
, _localtime64
time
, _time32
, _time64
_utime
, _utime32
, _utime64
, _wutime
, _wutime32
, , _wutime64