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( <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 );
}
Equivalência do .NET Framework
Consulte também
Referência
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
gmtime_s, _gmtime32_s, _gmtime64_s
localtime, _localtime32, _localtime64