Como converter um time_t UNIX para um FILETIME Win32 ou SYSTEMTIME

Traduções de Artigos Traduções de Artigos
Artigo: 167296 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sumário

Em plataformas UNIX, são mantidas ficheiro vezes sob a forma de um tipo aritmética de C ANSI tempo de execução com o nome 'time_t', que representa os segundos, desde a meia-noite de 1 de Janeiro de 1970 UTC (formato de hora universal coordenada).

Em plataformas de Win32, horas de ficheiro são mantidas principalmente sob a forma de uma estrutura FILETIME 64 bits, que representa o número de intervalos de 100-nanosegundos desde 1 de Janeiro de 1601 UTC (coordenadas de tempo universal).

Este artigo mostra como converter a hora UNIX para outros formatos de hora de Win32.

Mais Informação

A seguinte função converte uma filetime no formato time_t UNIX para um formato FILETIME Win32. Tenha em atenção que time_t é um valor de 32 bits e FILETIME é uma estrutura de 64 bits, por isso a função de Win32, Int32x32To64() é utilizada na função seguinte:
   #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;
   }
				
depois do tempo de UNIX é convertido para uma estrutura FILETIME, outros formatos de hora Win32 podem ser obtidos facilmente utilizando funções de Win32 como FileTimeToSystemTime() e FileTimeToDosDateTime().
   void UnixTimeToSystemTime(time_t t, LPSYSTEMTIME pst)
   {
     FILETIME ft;

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

Propriedades

Artigo: 167296 - Última revisão: 21 de novembro de 2006 - Revisão: 3.3
A informação contida neste artigo aplica-se a:
  • Microsoft Win32 Application Programming Interface nas seguintes 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
Palavras-chave: 
kbmt kbdatetime kbhowto kbkernbase kbprogramming KB167296 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 167296

Submeter comentários

 

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