Al momento sei offline in attesa che la connessione Internet venga ristabilita

Come convertire un time_t UNIX di FILETIME Win32 SYSTEMTIME

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 167296
Sommario
In piattaforme UNIX, tempi di file vengono gestiti nel modulo di un tipo aritmetico runtime ANSI C denominato 'time_t', che rappresenta i secondi trascorsi dalla mezzanotte del 1 gennaio 1970 ora UTC (coordinated universal time).

In piattaforme Win32, tempi di file vengono gestiti principalmente in forma di una struttura FILETIME a 64 bit, che rappresenta il numero di intervalli da 100 nanosecondi dall'1 gennaio 1601 UTC (coordinate universal time).

In questo articolo viene illustrato come convertire ora UNIX in altri formati di ora di Win32.
Informazioni
La funzione seguente converte un filetime nel formato time_t UNIX in un formato FILETIME Win32. Si noti che time_t è un valore a 32 bit e FILETIME è una struttura di 64 bit, pertanto la funzione di Win32, Int32x32To64() viene utilizzata nella funzione seguente:
   #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;   }				
dopo l'ora di UNIX viene convertito in una struttura FILETIME, altri formati di ora di Win32 possono essere ottenuti facilmente utilizzando funzioni di Win32, ad esempio FileTimeToSystemTime() e FileTimeToDosDateTime().
   void UnixTimeToSystemTime(time_t t, LPSYSTEMTIME pst)   {     FILETIME ft;     UnixTimeToFileTime(t, &ft);     FileTimeToSystemTime(&ft, pst);   }				
bSe ora tm filetime systemtime crt

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 167296 - Ultima revisione: 11/21/2006 15:45:05 - Revisione: 3.3

Microsoft Win32 Application Programming Interface

  • kbmt kbdatetime kbhowto kbkernbase kbprogramming KB167296 KbMtit
Feedback