Partilhar via


gmtime, _gmtime32, _gmtime64

Converte um time_t valor de tempo em uma tm estrutura. Estão disponíveis versões mais seguras destas funções; ver gmtime_s, _gmtime32_s, _gmtime64_s.

Sintaxe

struct tm *gmtime( const time_t *sourceTime ); // See note in remarks section about linkage
struct tm *_gmtime32( const __time32_t *sourceTime );
struct tm *_gmtime64( const __time64_t *sourceTime );

Parâmetros

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

Valor de retorno

Um ponteiro para uma estrutura do tipo tm. Os campos da estrutura retornada mantêm o valor avaliado do sourceTime argumento em UTC e não na hora local. Cada um dos campos de estrutura é do tipo int, da seguinte forma:

Campo Description
tm_sec Segundos após minuto (0 - 59).
tm_min Minutos após a hora (0 - 59).
tm_hour Horas desde a meia-noite (0 - 23).
tm_mday Dia do mês (1 - 31).
tm_mon Mês (0 - 11; Janeiro = 0).
tm_year Ano (ano corrente menos 1900).
tm_wday Dia da semana (0 - 6; Domingo = 0).
tm_yday Dia do ano (0 - 365; Janeiro 1 = 0).
tm_isdst Sempre 0 para gmtime.

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

_gmtime64, que usa a estrutura, permite que as __time64_t datas sejam expressas até 23:59:59, 31 de dezembro de 3000, UTC. _gmtime32 apenas representam datas até 23:59:59 18 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 embutida que avalia a _gmtime64, e time_t é equivalente a __time64_t unless _USE_32BIT_TIME_T é definida. Se você precisar forçar o compilador a interpretar time_t como o antigo de 32 bits time_t, você pode definir _USE_32BIT_TIME_T, mas isso faz com que gmtime seja alinhado e _gmtime32time_t definido como __time32_t. Não recomendamos o uso do , porque ele não é permitido em plataformas de _USE_32BIT_TIME_T64 bits. Em qualquer caso, a sua candidatura pode falhar após 18 de janeiro de 2038.

Estas funções validam os seus parâmetros. Se sourceTime for um NULL ponteiro ou se o sourceTime valor for negativo, essas funções invocarão um manipulador de parâmetros inválido, conforme descrito em Validação de parâmetros. Se a execução for permitida para continuar, as funções retornarão NULL e serão definidas errno como EINVAL.

Observações

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

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.

Observação

Quando você usa o Windows SDK versão 10.0.26100.6901 e Visual Studio 2026 ou posterior juntos, gmtime não é mais static inline (ligação interna). Em vez disso, é inline (ligação externa).
Para retornar ao comportamento anterior, #define _STATIC_INLINE_UCRT_FUNCTIONS=1 antes de incluir quaisquer cabeçalhos CRT. Por padrão, _STATIC_INLINE_UCRT_FUNCTIONS é definido como 0.
Essa alteração aumenta a conformidade do UCRT com o padrão C++ e melhora a compatibilidade com módulos C++.

Requerimentos

Rotina Cabeçalho C necessário Cabeçalho C++ necessário
gmtime, _gmtime32, _gmtime64 <time.h> <ctime> ou <time.h>

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

Example

// 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

Consulte também

Gestão do 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