gmtime_s, _gmtime32_s, _gmtime64_s
Converte um valor de tempo para uma estrutura.Estas são as versões do _gmtime32, _gmtime64 com aprimoramentos de segurança, conforme descrito em Recursos de segurança no CRT.
errno_t gmtime_s(
struct tm* _tm,
const __time_t* time
);
errno_t _gmtime32_s(
struct tm* _tm,
const __time32_t* time
);
errno_t _gmtime64_s(
struct tm* _tm,
const __time64_t* time
);
Parâmetros
_tm
Ponteiro para uma tm estrutura.Os campos da estrutura retornado mantém o valor avaliado da timer em UTC, em vez de na hora local do argumento.time
Ponteiro para o tempo armazenado.O tempo é representado como segundos passados desde a meia-noite (00: 00), 1 de janeiro de 1970, hora universal coordenada (UTC).
Valor de retorno
Zero se for bem sucedida.O valor de retorno é um código de erro, se houver uma falha.Códigos de erro estão definidos no errno. h; Para obter uma lista desses erros, consulte errno.
Condições de erro
_tm |
time |
Return |
O valor_tm |
---|---|---|---|
NULL |
any |
EINVAL |
Não modificado. |
Não NULL (aponta para memória válido) |
NULL |
EINVAL |
Todos os campos definidos como -1. |
NãoNULL |
< 0 |
EINVAL |
Todos os campos definidos como -1. |
No caso das condições de erro de dois primeira, o manipulador de parâmetro inválido é invocado, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, essas funções definir errno para EINVAL e retornar EINVAL.
Comentários
O _gmtime32_s função divide o time de valor e as armazena em uma estrutura do tipo tm, definido em Time.h.O endereço da estrutura é passado em _tm.O valor de time geralmente são obtidas de uma chamada para o time função.
Observação |
---|
O ambiente de destino deve tentar determinar se o horário de verão está em vigor.A biblioteca de tempo de execução c assume as regras dos Estados Unidos para implementar o cálculo do horário de verão. |
Cada um dos campos de estrutura é do tipo int, conforme mostrado na tabela a seguir.
tm_sec
Segundos após minuto (0 – 59).tm_min
Minutos após 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 atual menos 1900).tm_wday
Dia da semana (0 – 6; Domingo = 0).tm_yday
Dia do ano (0 – 365 dias por ano; 1º De janeiro = 0).tm_isdst
Sempre 0 para gmtime.
_gmtime64_s, que usa a __time64_t estruturar, permite que as datas para expressos por meio de 23: 59: 59, 31 de dezembro de 3000, UTC; enquanto gmtime32_s representam apenas datas até 03: 14: 07 em 19 de janeiro de 2038, UTC.Meia-noite, de 1º de janeiro de 1970, é o limite inferior do intervalo de datas para ambas essas funções.
gmtime_sé uma função in-line que é avaliada como _gmtime64_s e time_t é equivalente a __time64_t.Se você precisar forçar o compilador para interpretar time_t como o antigo 32-bit time_t, você pode definir _USE_32BIT_TIME_T.Fazendo isso fará com que gmtime_s ser com no-linhas para _gmtime32_s.Isso não é recomendado porque seu aplicativo pode falhar após 18 de janeiro de 2038, e não é permitido em plataformas de 64 bits.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
gmtime_s |
<time.h> |
_gmtime32_s |
<time.h> |
_gmtime64_s |
<time.h> |
Para obter mais informações de compatibilidade, consulte compatibilidade na introdução.
Exemplo
// crt_gmtime64_s.c
// This program uses _gmtime64_s to convert a 64-bit
// integer representation of coordinated universal time
// to a structure named newtime, then uses asctime_s to
// convert this structure to an output string.
#include <time.h>
#include <stdio.h>
int main( void )
{
struct tm newtime;
__int64 ltime;
char buf[26];
errno_t err;
_time64( <ime );
// Obtain coordinated universal time:
err = _gmtime64_s( &newtime, <ime );
if (err)
{
printf("Invalid Argument to _gmtime64_s.");
}
// Convert to an ASCII representation
err = asctime_s(buf, 26, &newtime);
if (err)
{
printf("Invalid Argument to asctime_s.");
}
printf( "Coordinated universal time is %s\n",
buf );
}
Equivalência do .NET Framework
Consulte também
Referência
a ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
localtime_s, _localtime32_s, _localtime64_s