Compartilhar via


_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.

Consulte também

Referência

Gerenciamento de tempo

asctime, _wasctime

_ftime, _ftime32, _ftime64

gmtime, _gmtime32, _gmtime64

localtime, _localtime32, _localtime64

time, _time32, _time64

_utime, _utime32, _utime64, _wutime, _wutime32, _wutime64