Compartilhar via


gmtime, _gmtime32, _gmtime64

Converte um valor de tempo em uma estrutura. Versões mais seguras dessas funções estão disponíveis; consulte gmtime_s, _gmtime32_s, _gmtime64_s.

struct tm *gmtime( 
   const time_t *timer 
);
struct tm *_gmtime32( 
   const __time32_t *timer 
);
struct tm *_gmtime64( 
   const __time64_t *timer 
);

Parâmetros

  • timer
    Ponteiro para o tempo armazenado. O tempo é representado como segundos passados desde a meia-noite (00:00: 00) de 1º de janeiro de 1970, UTC (tempo universal coordenado).

Valor de retorno

Um ponteiro a uma estrutura do tipo tm. Os campos da estrutura retornada contêm o valor avaliado do argumento timer em UTC em vez de na hora local. Cada um dos campos de estrutura é do tipo int, conforme a seguir:

  • tm_sec
    Segundos após o minuto (0 a 59).

  • tm_min
    Minutos após a hora (0 – 59).

  • tm_hour
    Horas a partir da meia-noite (0 – 23).

  • tm_mday
    Dia do mês (1 – 31).

  • tm_mon
    Mês (0 – 11; janeiro = 0).

  • tm_year
    Ano (o ano atual menos 1900).

  • tm_wday
    Dia da semana (de 0 a 6; domingo = 0).

  • tm_yday
    Dia do ano (de 0 a 365; 1 de janeiro = 0).

  • tm_isdst
    Sempre 0 para gmtime.

Versões de 32 bits e 64 bits de gmtime, mktime, mkgmtime e localtime, todas usam uma estrutura comum tm por thread para a conversão. Cada chamada a uma dessas funções destrói o resultado de qualquer chamada anterior. Se timer representar uma data antes da meia-noite de 1 de janeiro de 1970, gmtime retornará NULL. Não há nenhum retorno de erro.

_gmtime64, que usa a estrutura de __time64_t, permite que as datas sejam expressas até 23:59 de 31 de dezembro de 3000, UTC, enquanto _gmtime32 representa apenas datas até 03:14:07 de 19 de janeiro de 2038, UTC. Meia-noite, 1 de janeiro de 1970, é o limite inferior do intervalo de datas para ambas as funções.

gmtime é uma função in-line que avalia a _gmtime64, e time_t é equivalente a __time64_t a menos que _USE_32BIT_TIME_T seja definido. Se você precisar forçar o compilador a interpretar time_t como time_tde 32 bits antigo, você pode definir _USE_32BIT_TIME_T, mas fazer isso faz com que gmtime seja alinhado com _gmtime32 e time_t seja definido como __time32_t. Recomendamos que você não faça isso, porque não é permitido em plataformas de 64 bits e em qualquer caso em seu aplicativo pode falhar depois do dia 18 de janeiro de 2038.

Essas funções validam seus parâmetros. Se timer for um ponteiro nulo ou se o valor do temporizador for negativo, essas funções chamarão um manipulador de parâmetro inválido, como descrito em Validação do parâmetro. Se a execução puder continuar, as funções retornarão NULL e definirão errno como EINVAL.

Comentários

A função _gmtime32 divide o valor timer e o armazena em uma estrutura de tipo tm alocada de maneira estática, definida em TIME.H. O valor de timer normalmente é obtido de uma chamada para a função time.

Dica

Na maioria dos casos, o ambiente de destino tenta determinar se o horário de verão está em vigor.A biblioteca em tempo de execução C assume que as regras dos Estados Unidos para implementar o cálculo de horário de verão (DST) serão usadas.

Requisitos

Rotina

Cabeçalho necessário

gmtime

<time.h>

_gmtime32

<time.h>

_gmtime64

<time.h>

Para obter informações adicionais sobre compatibilidade, consulte Compatibilidade.

Exemplo

// crt_gmtime.c
// compile with: /W3
// This program uses _gmtime64 to convert a long-
// integer representation of coordinated universal time
// to a structure named newtime, then uses asctime to
// convert this structure to an output string.
 
#include <time.h>
#include <stdio.h>

int main( void )
{
   struct tm *newtime;
   __int64 ltime;
   char buff[80];

   _time64( &ltime );

   // Obtain coordinated universal time:
   newtime = _gmtime64( &ltime ); // C4996
   // Note: _gmtime64 is deprecated; consider using _gmtime64_s
   asctime_s( buff, sizeof(buff), newtime );
   printf( "Coordinated universal time is %s\n", buff );
}
  

Equivalência do .NET Framework

Consulte também

Referência

Gerenciamento de tempo

asctime, _wasctime

ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64

_ftime, _ftime32, _ftime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime, _localtime32, _localtime64

_mkgmtime, _mkgmtime32, _mkgmtime64

mktime, _mktime32, _mktime64

time, _time32, _time64