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