mktime, _mktime32, _mktime64

Convierte la hora local en un valor de calendario.

time_t mktime(
   struct tm *timeptr 
);
__time32_t _mktime32(
   struct tm *timeptr 
);
__time64_t _mktime64(
   struct tm *timeptr 
);

Parámetros

  • timeptr
    puntero para sincronizar la estructura; vea asctime.

Valor devuelto

_mktime32 devuelve el tiempo especificado de calendario codificada como valor de time_tescrito.Si el timeptr hace referencia a una fecha antes de medianoche, el 1 de enero de 1970, o si el tiempo de calendario no se puede representar, _mktime32 devuelve – 1 conversión para escribir time_t.Al utilizar _mktime32 y si el timeptr hace referencia a una fecha después de 03:14: El 7 de enero de 19, 2038, hora universal coordinada (UTC) (UTC), devolverá – 1 conversión para escribir time_t.

_mktime64 devolverá – 1 conversión para escribir __time64_t si el timeptr hace referencia a una fecha después de 23:59: 59, el 31 de diciembre, 3000, la hora UTC.

Comentarios

mktime, _mktime32 y las funciones de _mktime64 convierten la estructura proporcionada de tiempo (posiblemente incompleto) designada por el timeptr en una estructura totalmente definidos con valores normalizados y la convierte en un valor de tiempo de calendario de time_t .Tiempo convertido tiene la misma codificación que los valores devueltos por tiempo .Los valores originales de los componentes de tm_wday y de tm_yday de la estructura de timeptr se omiten, y los valores originales de los componentes no se limitan a los intervalos normales.

mktime es una función inline que es equivalente a _mktime64, a menos que _USE_32BIT_TIME_T está definido, en este caso es equivalente a _mktime32.

Después de un ajuste en hora UTC, _mktime32 controla las fechas de la medianoche, el 1 de enero de 1970, a 03:14: 07, el 19 de enero de 2038.fechas de los identificadores de**_mktime64** de la medianoche, del 1 de 1970 al 23 de enero: 59:59, el 31 de diciembre, 3000.Este ajuste puede hacer estas funciones para devolver -1 (conversión a time_t, a __time32_t o a __time64_t) aunque la fecha especificada está dentro del intervalo.Por ejemplo, si se encuentra en El Cairo, Egipto, que es de dos horas delante UTC, dos horas primero se resta a partir de la fecha que se especifica en timeptr; esto puede poner la fecha fuera del intervalo.

estas funciones se pueden utilizar para validar y para completar una estructura de tm .Si son correctas, estas funciones establecen los valores de tm_wday y de tm_yday según corresponda especialmente los otros componentes para representar el tiempo especificado de calendario, pero con los valores convertidos a intervalos normales.El valor final de tm_mday no se establece hasta que se mantienen tm_mon y tm_year .Al especificar un tiempo de la estructura de tm , establezca el campo de tm_isdst :

  • Cero (0) para indicar que la hora estándar está vigente.

  • Un valor mayor que 0 para indicar que el horario de verano está vigente.

  • Un valor inferior a cero para obtener el cálculo del código de la biblioteca en tiempo de ejecución de C si la hora estándar o tiempo de guardar de luz está vigente.

La biblioteca en tiempo de ejecución de C determinará el comportamiento del horario de verano de la variable de entorno T-z .Si TZ no está establecida, la llamada GetTimeZoneInformation de la API Win32 se utiliza para obtener la información del horario de verano del sistema operativo.Si da error, la biblioteca se supone que las reglas de los Estados Unidos para implementar el cálculo del horario de verano se utilizan.tm_isdst es un campo obligatorio.Si no establece, su valor es indefinido y el valor devuelto de estas funciones es imprevisible.Si los puntos de timeptr a una estructura de tm devueltos por una llamada anterior a asctime, gmtime, o localtime (o las variantes de estas funciones), el campo de tm_isdst contiene el valor correcto.

Observe que el uso de gmtime y de localtime (y _gmtime32, _gmtime64, _localtime32, y _localtime64) un único búfer por el subproceso para la conversión.Si proporciona este búfer a mktime, a _mktime32 o a _mktime64, se destruyen los contenido anteriores.

Estas funciones validan el parámetro.Si el timeptr es un puntero NULL, se invoca el controlador no válido del parámetro, como se describe en. Validación de parámetrosSi la ejecución puede continuar, las funciones devuelven -1 y errno establecido en EINVAL.

Requisitos

rutina

Encabezado necesario

mktime

<time.h>

_mktime32

<time.h>

_mktime64

<time.h>

Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.

bibliotecas

todas las versiones de Bibliotecas en tiempo de ejecución de C.

Ejemplo

// crt_mktime.c
/* The example takes a number of days
 * as input and returns the time, the current
 * date, and the specified number of days.
 */

#include <time.h>
#include <stdio.h>

int main( void )
{
   struct tm  when;
   __time64_t now, result;
   int        days;
   char       buff[80];

   time( &now );
   _localtime64_s( &when, &now );
   asctime_s( buff, sizeof(buff), &when );
   printf( "Current time is %s\n", buff );
   days = 20;
   when.tm_mday = when.tm_mday + days;
   if( (result = mktime( &when )) != (time_t)-1 ) {
      asctime_s( buff, sizeof(buff), &when );
      printf( "In %d days the time will be %s\n", days, buff );
   } else
      perror( "mktime failed" );
}

Resultados del ejemplo

Current time is Fri Apr 25 13:34:07 2003

In 20 days the time will be Thu May 15 13:34:07 2003

Equivalente en .NET Framework

System:: fecha y hora:: DateTime

Vea también

Referencia

Administración de tiempo

asctime, _wasctime

gmtime, _gmtime32, _gmtime64

localtime, _localtime32, _localtime64

_mkgmtime, _mkgmtime32, _mkgmtime64

time, _time32, _time64