Array
(
)

Formato e Conversão de Datas

Marcos Ariga
|
MVP
    21 mai 2013

Estive realizando uma captura de informações em um equipamento Impressora, e investigando, recebi esta informação que não consigo identificar e nem como converter.
A informação via Browser é que consegui identificar.
* Dados puxados via SNMP - Está vindo como Int32
1369080775 (via SNMP) - 2013/05/20 15:12 (via Browser)
1369068011 (via SNMP) - 2013/05/20 11:39 (via Browser)
Precisaria saber que tipo de formato de data/hora é esta representação inicial via SNMP.
Alguém saberia me informar que tipo de formato é este? E como poderia converter para ter o mesmo formato do obtido via Browser?

Pjava
   - 22 mai 2013

É estranho esse número. Se fosse um double, tipo(eu fiz isso), você poderia fazer:

double d = 13690.68011;
DateTime dt = DateTime.FromOADate(d);

Mas é um inteiro, aí não sei como transformar isso em um DateTime. Tem certeza que é um inteiro e não um double? Datas são números em ponto flutuante, no qual antes do ponto temos a data em si e após o ponto decimal, temos a parte hora. Verifique bem e veja se não existe um ponto decimal em algum lugar?

Joel Rodrigues
   - 23 mai 2013

Esse valor está no formato Unix, que é um formato representado pela quantidade de segundos contados a partir da data 1/1/1970.
Para converter isso para DateTime, use essa função:
#Código

public static DateTime UnixTimeStampToDateTime(double unixTimeStamp)
        {
            // Unix timestamp is seconds past epoch
            System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
            dtDateTime = dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime();
            return dtDateTime;
        }

Essa função foi tirada do link: http://stackoverflow.com/questions/249760/how-to-convert-unix-timestamp-to-datetime-and-vice-versa

Boa sorte.

Joel Rodrigues
   - 03 jun 2013

Deu certo?