Partilhar via


_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 _ftimefunções , gmtimee 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