Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Comment faire pour convertir un time_t UNIX à un Win32 FILETIME ou SYSTEMTIME

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 167296
Résumé
Sous les plates-formes UNIX, les heures des fichiers sont conservés dans la forme d'un type arithmétique ANSI C runtime nommé 'time_t', qui représente les secondes écoulées depuis minuit 1er janvier 1970, UTC (temps universel).

Sous les plates-formes Win32, temps de fichiers sont mis à jour principalement dans l'écran d'une structure FILETIME 64 bits, qui représente le nombre d'intervalles de 100 nanosecondes depuis le 1er janvier 1601 UTC (heure universelle coordonnée).

Cet article montre comment convertir des temps de UNIX vers d'autres formats de temps Win32.
Plus d'informations
La fonction suivante convertit un filetime au format time_t UNIX au format Win32 FILETIME. Notez que time_t est une valeur 32 bits et FILETIME étant une structure de 64 bits, la fonction Win32, Int32x32To64() est utilisée dans la fonction suivante :
   #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;   }				
une fois le temps UNIX est converti en une structure FILETIME, autres formats d'heure Win32 peuvent être facilement obtenus en utilisant des fonctions Win32 telles que FileTimeToSystemTime() et FileTimeToDosDateTime().
   void UnixTimeToSystemTime(time_t t, LPSYSTEMTIME pst)   {     FILETIME ft;     UnixTimeToFileTime(t, &ft);     FileTimeToSystemTime(&ft, pst);   }				
BSE temps tm filetime systemtime crt

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 167296 - Dernière mise à jour : 11/21/2006 15:45:05 - Révision : 3.3

Microsoft Win32 Application Programming Interface

  • kbmt kbdatetime kbhowto kbkernbase kbprogramming KB167296 KbMtfr
Commentaires
> display: none; " src="https://c1.microsoft.com/c.gif?DI=4050&did=1&t=">