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

Traductions disponibles Traductions disponibles
Numéro d'article: 167296 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

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);
   }
				

Propriétés

Numéro d'article: 167296 - Dernière mise à jour: mardi 21 novembre 2006 - Version: 3.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Win32 Application Programming Interface sur le système suivant
    • 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
Mots-clés : 
kbmt kbdatetime kbhowto kbkernbase kbprogramming KB167296 KbMtfr
Traduction automatique
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
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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