Você está offline; aguardando reconexão

Como converter um time_t UNIX em um FILETIME Win32 ou SYSTEMTIME

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
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);   }				
bSe tempo tm filetime systemtime crt

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 167296 - Última Revisão: 11/21/2006 15:45:05 - Revisão: 3.3

Interface de Programação de Aplicativos do Microsoft Win32

  • kbmt kbdatetime kbhowto kbkernbase kbprogramming KB167296 KbMtpt
Comentários