Formato e Conversão de Datas

.NET

21/05/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?
Marcos Ariga

Marcos Ariga

Curtidas 0

Respostas

Pjava

Pjava

21/05/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?
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

21/05/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:
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: [url]http://stackoverflow.com/questions/249760/how-to-convert-unix-timestamp-to-datetime-and-vice-versa[/url]

Boa sorte.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

21/05/2013

Deu certo?
GOSTEI 0
POSTAR