gmtime, _gmtime32, _gmtime64

Converte um valor temporal time_t em uma estrutura tm. Versões mais seguras dessas funções estão disponíveis; confira gmtime_s, _gmtime32_s, _gmtime64_s.

Sintaxe

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

Parâmetros

sourceTime
Ponteiro para a hora armazenada. A hora é representada como os segundos transcorridos desde a meia-noite (00:00:00) de 1º de janeiro de 1970, no horário UTC (Tempo Universal Coordenado).

Valor retornado

Um ponteiro para uma estrutura do tipo tm. Os campos da estrutura retornada contêm o valor avaliado do argumento sourceTime no horário UTC e não no horário local. Cada um dos campos da estrutura é do tipo int, da seguinte maneira:

Campo Descrição
tm_sec Segundos após o minuto (0 a 59).
tm_min Minutos após a hora (0 a 59).
tm_hour Horas desde a meia-noite (0 a 23).
tm_mday Dia do mês (1 a 31).
tm_mon Mês (0 a 11; janeiro = 0).
tm_year Ano (ano atual menos 1900).
tm_wday Dia da semana (0 a 6; domingo = 0).
tm_yday Dia do ano (0 a 365; 1º de janeiro = 0).
tm_isdst Sempre 0 para gmtime.

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

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

gmtime é uma função embutida que é avaliada como _gmtime64 e time_t é equivalente a __time64_t, a menos que _USE_32BIT_TIME_T seja definido. Se precisar forçar o compilador a interpretar time_t como o time_t antigo de 32 bits, você poderá definir _USE_32BIT_TIME_T, mas fazer isso faz com que gmtime seja embutido em _gmtime32 e time_t seja definido como __time32_t. Não recomendamos o uso de _USE_32BIT_TIME_T, pois isso não é permitido em plataformas de 64 bits. De qualquer forma, seu aplicativo poderá falhar após 18 de janeiro de 2038.

Essas funções validam seus parâmetros. Se sourceTime for um ponteiro NULL ou se o valor sourceTime for negativo, essas funções invocarão um manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. Se a execução tiver permissão para continuar, essas funções retornarão NULL e definirão errno como EINVAL.

Comentários

A função _gmtime32 divide o valor de sourceTime e o armazena em uma estrutura alocada estaticamente do tipo tm, definida em TIME.H. O valor de sourceTime normalmente é obtido com uma chamada para a função time.

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 C necessário Cabeçalho C++ necessário
gmtime, _gmtime32, _gmtime64 <time.h> <ctime> ou <time.h>

Para obter informações 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 );
}
Coordinated universal time is Tue Feb 12 23:11:31 2002

Confira também

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