gmtime_s, _gmtime32_s, _gmtime64_s

 

Publicado: octubre de 2016

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Convierte un valor de hora en una estructura. Estas son versiones de _gmtime32, _gmtime64 con mejoras de seguridad, como se describe en características de seguridad de 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
Puntero a un tm estructura. Los campos de la estructura devuelta contienen el valor evaluado del argumento de timer en hora UTC y no en hora local.

time
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).

Cero si es correcta. El valor devuelto es un código de error si se produce un error. Códigos de error se definen en Errno.h; Para obtener una lista de estos errores, vea errno.

Condiciones de error

_tmtimeVolverValor de_tm
NULLcualquieraEINVALNo se ha modificado.
No NULL (puntos de memoria válida)NULLEINVALTodos los campos valor -1.
NoNULL< 0EINVALTodos los campos valor -1.

En el caso de las condiciones de error primeras, se invoca el controlador de parámetros no válidos, como se describe en validación del parámetro. Si la ejecución puede continuar, estas funciones establecen errno en EINVAL y devuelven EINVAL.

El _gmtime32_s función divide la time valor y lo almacena en una estructura de tipo tm, definida en Time.h. La dirección de la estructura se pasa en _tm. El valor de time suele obtenerse a partir de una llamada a la time (función).

System_CAPS_ICON_note.jpg Nota

El entorno de destino debería intentar determinar si el horario de verano está en vigor. La biblioteca de tiempo de ejecución de C supone que las reglas de Estados Unidos para implementar el cálculo del horario de verano.

Cada uno de los campos de la estructura es de tipo int, como se muestra en la tabla siguiente.

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.

_gmtime64_s, que utiliza la __time64_t estructura, permite expresar hasta 23:59:59, hasta el 31 de diciembre de 3000, UTC; fechas mientras que gmtime32_s solo representa fechas hasta las 23:59:59 del 18 de enero de 2038, hora UTC. Medianoche del 1 de enero de 1970, es el límite inferior del intervalo de fechas para ambas de estas funciones.

gmtime_ses una función insertada que se evalúa como _gmtime64_s y time_t es equivalente a __time64_t. Si necesita que el compilador interprete time_t como lo 32 bits anterior time_t, puede definir _USE_32BIT_TIME_T. Hacer esto hará que gmtime_s se insertará en _gmtime32_s. Esto no se recomienda porque puede producir un error de la aplicación después del 18 de enero de 2038, y no se permite en plataformas de 64 bits.

RutinaEncabezado necesario
gmtime_s<time.h>
_gmtime32_s<time.h>
_gmtime64_s<time.h>

Para obtener más información sobre compatibilidad, vea Compatibility en la introducción.

// 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( &ltime );  
  
   // Obtain coordinated universal time:   
   err = _gmtime64_s( &newtime, &ltime );  
   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  

Administración del 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
tiempo, _time32, _time64

Mostrar: