Como converter um time_t UNIX em um FILETIME Win32 ou SYSTEMTIME

Traduções deste artigo Traduções deste artigo
ID do artigo: 167296 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sumário

Em plataformas UNIX, tempos de arquivos são mantidos no formulário de um tipo de aritmético de tempo de execução do ANSI C chamado 'time_t', que representa os segundos desde a meia-noite 1 º de janeiro de 1970 UTC (tempo de universal coordenado).

Em plataformas Win32, tempos de arquivos são mantidos principalmente no formulário de uma estrutura FILETIME de 64 bits, que representa o número de intervalos de 100 nanossegundos desde, 1 de janeiro de 1601 UTC (hora universal coordenada).

Este artigo mostra como converter o tempo do UNIX para outros formatos de hora Win32.

Mais Informações

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

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

Propriedades

ID do artigo: 167296 - Última revisão: terça-feira, 21 de novembro de 2006 - Revisão: 3.3
A informação contida neste artigo aplica-se a:
  • Interface de Programação de Aplicativos do Microsoft Win32 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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