¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
div
EOF
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

_mkgmtime, _mkgmtime32, _mkgmtime64

convierte una hora UTC representada por tmstruct a una hora UTC representada por un tipo de time_t .

time_t _mkgmtime(
   struct tm* timeptr
);
__time32_t _mkgmtime32(
   struct tm* timeptr
);
__time64_t _mkgmtime64(
   struct tm* timeptr
);

timeptr

un puntero a la hora UTC como structtm de convertir.

Una cantidad de __time32_t cualquiera de __time64_t que representa el número de segundos transcurridos desde la medianoche, el 1 de enero de 1970, en hora universal coordinada (UTC) (UTC). Si la fecha está fuera de intervalo (vea la sección comentarios) o la entrada no se puede interpretar como hora válido, el valor devuelto es – 1.

Las funciones de _mkgmtime32 y de _mkgmtime64 convierte una hora UTC en __time32_t o a __time64_t tipo representa la hora en la hora UTC. Para convertir una hora local a la hora UTC, utilice mktime, _mktime32, y _mktime64 en su lugar.

_mkgmtime es una función inline que se evalúa como _mkgmtime64, y time_t es equivalente a __time64_t. Si necesita hacer que el compilador para interpretar time_tcomo time_tde 32 bits anterior, puede definir _USE_32BIT_TIME_T. Esto no es recomendable porque la aplicación podría producir un error después del 19 de enero de 2038 (el intervalo máximo de time_tde 32 bits), y no se permite en plataformas de 64 bits.

La estructura de tiempo pasado se cambiará como sigue, de la misma forma que se modifican con las funciones de _mktime : los campos de tm_wday y de tm_yday se establecen en los nuevos valores basados en valores de tm_mday y de 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 utiliza la variable de entorno t-z para determinar el horario de verano correcto. Si no se establece t-z, el sistema operativo se consulta para obtener el comportamiento regional correcto del horario de verano. tm_isdst es un campo obligatorio. Si no establece, su valor es indefinido y el valor devuelto de mktime es imprevisible.

El intervalo de la función de _mkgmtime32 es la medianoche, el 1 de enero de 1970, hora UTC 19 de enero, 3:14: 07, 2038, la hora UTC. El intervalo de _mkgmtime64 es la medianoche, el 1 de enero de 1970, hora UTC a 23:59: 59, el 31 de diciembre, 3000, la hora UTC. Una fecha fuera produce un valor devuelto de – 1. El intervalo de _mkgmtime depende de si _USE_32BIT_TIME_T está definido. Si no definido (valor predeterminado) el intervalo es el de _mkgmtime64; si no, se limita al intervalo de 32 bits de _mkgmtime32.

Observe que gmtime y localtime utilizan un único búfer estáticamente asignado para la conversión. Si proporciona este búfer a mkgmtime, se destruyen los contenido anteriores.

// crt_mkgmtime.c
#include <stdio.h>
#include <time.h>

int main()
{
    struct tm t1, t2;
    time_t now, mytime, gmtime;
    char buff[30];

    time( & now );

    _localtime64_s( &t1, &now );
    _gmtime64_s( &t2, &now );

    mytime = mktime(&t1);
    gmtime = _mkgmtime(&t2);

    printf("Seconds since midnight, January 1, 1970\n");
    printf("My time: %I64d\nGM time (UTC): %I64d\n\n", mytime, gmtime);

    /* Use asctime_s to display these times. */

    _localtime64_s( &t1, &mytime );
    asctime_s( buff, sizeof(buff), &t1 );
    printf( "Local Time: %s\n", buff );

    _gmtime64_s( &t2, &gmtime );
    asctime_s( buff, sizeof(buff), &t2 );
    printf( "Greenwich Mean Time: %s\n", buff );

}

Seconds since midnight, January 1, 1970
My time: 1171588492
GM time (UTC): 1171588492

Local Time: Thu Feb 15 17:14:52 2007

Greenwich Mean Time: Fri Feb 16 01:14:52 2007

El ejemplo siguiente se muestra cómo la estructura incompleta se completa con los valores calculados del día de la semana y el día del año.

// crt_mkgmtime2.c
#include <stdio.h>
#include <time.h>
#include <memory.h>

int main()
{
    struct tm t1, t2;
    time_t gmtime;
    char buff[30];

    memset(&t1, 0, sizeof(struct tm));
    memset(&t2, 0, sizeof(struct tm));

    t1.tm_mon = 1;
    t1.tm_isdst = 0;
    t1.tm_year = 103;
    t1.tm_mday = 12;

    // The day of the week and year will be incorrect in the output here.
    asctime_s( buff, sizeof(buff), &t1);
    printf("Before calling _mkgmtime, t1 = %s t.tm_yday = %d\n",
            buff, t1.tm_yday );

    gmtime = _mkgmtime(&t1);

    // The correct day of the week and year were determined.
    asctime_s( buff, sizeof(buff), &t1);
    printf("After calling _mkgmtime, t1 = %s t.tm_yday = %d\n",
            buff, t1.tm_yday );

}

Before calling _mkgmtime, t1 = Sun Feb 12 00:00:00 2003
 t.tm_yday = 0
After calling _mkgmtime, t1 = Wed Feb 12 00:00:00 2003
 t.tm_yday = 42

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft