gmtime_s
, _gmtime32_s
, _gmtime64_s
Convierte un valor de hora en una estructura tm
. Estas funciones son versiones de _gmtime32
, _gmtime64
con mejoras de seguridad, como se describe en Características de seguridad de CRT.
Sintaxis
errno_t gmtime_s(
struct tm* tmDest,
const __time_t* sourceTime
);
errno_t _gmtime32_s(
struct tm* tmDest,
const __time32_t* sourceTime
);
errno_t _gmtime64_s(
struct tm* tmDest,
const __time64_t* sourceTime
);
Parámetros
tmDest
Puntero a una estructura tm
. Los campos de la estructura devuelta contienen el valor evaluado del argumento de timer
en hora UTC y no en hora local.
sourceTime
Puntero a la hora almacenada. La hora se representa como los segundos transcurridos desde la medianoche (00:00:00) del 1 de enero de 1970, hora universal coordinada (UTC).
Valor devuelto
Cero si es correcta. Si se produce un error, el valor devuelto es un código de error. Los códigos de error se definen en Errno.h
; para obtener una lista de estos errores, consulte errno
.
Condiciones del error
tmDest |
sourceTime |
Return | Valor de tmDest |
---|---|---|---|
NULL |
cualquiera | EINVAL |
No modificado. |
No NULL (apunta a la memoria válida) |
NULL |
EINVAL |
Todos los campos establecidos en -1. |
No NULL |
< 0 | EINVAL |
Todos los campos establecidos en -1. |
Las dos primeras condiciones de error invocan el controlador de parámetros no válido, como se describe en Validación de parámetros. Si la ejecución puede continuar, estas funciones establecen errno
en EINVAL
y devuelven EINVAL
.
Comentarios
La función _gmtime32_s
desglosa el valor sourceTime
y lo almacena en una estructura de tipo tm
, definida en Time.h
. La dirección de la estructura se pasa en tmDest
. El valor de sourceTime
se suele obtener de una llamada a la función time
.
Cada uno de los campos de la estructura es de tipo int
, como se muestra en la tabla siguiente.
Campo | Descripción |
---|---|
tm_sec |
Segundos después del minuto (0 - 59). |
tm_min |
Minutos después de la hora (0 - 59). |
tm_hour |
Horas desde la medianoche (0 - 23). |
tm_mday |
Día del mes (1 - 31). |
tm_mon |
Mes (0 - 11; enero = 0). |
tm_year |
Año (año actual menos 1900). |
tm_wday |
Día de la semana (0 - 6; domingo = 0). |
tm_yday |
Día del año (0 - 365; 1 de enero = 0). |
tm_isdst |
Es siempre 0 para gmtime_s . |
_gmtime64_s
, que usa la estructura de __time64_t
, permite expresar fechas hasta las 23:59:59 del 31 de diciembre de 3000, hora UTC, mientras que gmtime32_s
solo representa fechas hasta las 23:59:59 del 18 de enero de 2038, hora UTC. La medianoche del 1 de enero de 1970 es el límite inferior del intervalo de fechas para ambas funciones.
gmtime_s
es una función insertada que se evalúa como _gmtime64_s
, y time_t
es equivalente a __time64_t
. Si necesita forzar el compilador para interpretar time_t
como el antiguo time_t
de 32 bits, puede definir _USE_32BIT_TIME_T
. _USE_32BIT_TIME_T
hace gmtime_s
que se inserte como _gmtime32_s
. _USE_32BIT_TIME_T
no es recomendable porque puede producir un error en la aplicación después del 18 de enero de 2038 y no se permite en plataformas de 64 bits.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
Routine | Encabezado C necesario | Encabezado C++ necesario |
---|---|---|
gmtime_s , _gmtime32_s , _gmtime64_s |
<time.h> |
<ctime> o <time.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// 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 );
}
Coordinated universal time is Fri Apr 25 20:12:33 2003
Consulte también
Administración de tiempo
asctime_s
, _wasctime_s
ctime
, _ctime32
, _ctime64
, _wctime
, _wctime32
, _wctime64
_ftime
, _ftime32
, _ftime64
gmtime
, _gmtime32
, _gmtime64
localtime_s
, _localtime32_s
, _localtime64_s
_mkgmtime
, _mkgmtime32
, _mkgmtime64
mktime
, _mktime32
, _mktime64
time
, _time32
, _time64