Cómo convertir un time_t de UNIX a SYSTEMTIME o FILETIME de Win32

Seleccione idioma Seleccione idioma
Id. de artículo: 167296 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

En plataformas UNIX, tiempos de archivos se mantienen en el formulario de un tipo aritmético en tiempo de ejecución de ANSI C denominado 'time_t', que representa los segundos transcurridos desde la medianoche 1 de del de enero de 1970 UTC (hora de universal coordinada).

En las plataformas Win32, tiempos de archivos se mantienen principalmente en el formulario de una estructura FILETIME de 64 bits, que representa el número de intervalos de 100 nanosegundos desde el 1 de enero de 1601 UTC (hora universal coordenada).

En este artículo muestra cómo convertir el tiempo de UNIX a otros formatos de hora de Win32.

Más información

La función siguiente convierte un filetime en el formato de time_t de UNIX a un formato FILETIME de Win32. Observe que time_t es un valor de 32 bits y FILETIME es una estructura de 64 bits, por lo que la función de Win32, Int32x32To64() se utiliza en la siguiente función:
   #include <winbase.h>
   #include <winnt.h>
   #include <time.h>

   void UnixTimeToFileTime(time_t t, LPFILETIME pft)
   {
     // Note that LONGLONG is a 64-bit value
     LONGLONG ll;

     ll = Int32x32To64(t, 10000000) + 116444736000000000;
     pft->dwLowDateTime = (DWORD)ll;
     pft->dwHighDateTime = ll >> 32;
   }
				
cuando la hora de UNIX se convierte en una estructura FILETIME, otros formatos de hora de Win32 pueden obtenerse fácilmente mediante las funciones de Win32 como FileTimeToSystemTime() y FileTimeToDosDateTime().
   void UnixTimeToSystemTime(time_t t, LPSYSTEMTIME pst)
   {
     FILETIME ft;

     UnixTimeToFileTime(t, &ft);
     FileTimeToSystemTime(&ft, pst);
   }
				

Propiedades

Id. de artículo: 167296 - Última revisión: martes, 21 de noviembre de 2006 - Versión: 3.3
La información de este artículo se refiere a:
  • Microsoft Win32 Application Programming Interface sobre las siguientes plataformas
    • Microsoft Windows 95
    • Microsoft Windows 98 Standard Edition
    • Microsoft Windows Millennium Edition
    • Microsoft Windows NT 3.51 Service Pack 5
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
Palabras clave: 
kbmt kbdatetime kbhowto kbkernbase kbprogramming KB167296 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 167296

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com