Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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( <ime );
// Obtain coordinated universal time:
newtime = _gmtime64( <ime ); // 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