2010-03-19 16 views
5

Voip aramaları için pbx ile çalışıyorum. Pbx'in bir yönü de CDR paketlerini almayı seçebilmenizdir. Bu paketler 2 zaman damgası var: "utc" ve "local", ama her ikisi de her zaman aynı görünüyor.Yerel saati (10 basamaklı sayı) okunabilir bir tarih formatına dönüştürün

Burada bir zaman damgası örneği verilmiştir: "1268927156". İlk bakışta, içinde mantık yok gibi görünüyor. Bu yüzden birkaç yolu dönüştürmeyi denedim ama iyi bir sonuç vermedi. Bu değer bugün 11:00 (+ 1GMT) civarında bir zaman sağlamalıdır.

şeyler I güvenilir:

  • tarih saat dt = Yeni tarih saat (sayı);
  • Timespan ts = new Timespan (sayı);
  • DateTime utc = new DateTime (numarası + 504911232000000000, DateTimeKind.Utc)

ve şu anda hatırlayamıyorum bazı diğerleri.

Burada aptalca bir şey eksik miyim?

Şimdiden teşekkürler

+0

Bu sınıflar bir ToString veya Format yöntemiyle gelmiyor mu? – lexu

cevap

12

Bu Unix zaman gibi görünüyor.

1268927156 = Per, 18 2010 15:45:56 GMT

Mar Ve bir kod örneği: (. Hiçbir saniye Dönemden beri)

DateTime startDate = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); 
DateTime time = startDate.AddSeconds(1268927156); 
+0

sorunu düzeltildi, tüm harika yanıt, teşekkürler – Terry

2

Unix zaman damgası gibi görünüyor

DateTime translated = new DateTime(1970,1,1).AddSeconds(1268927156); 

Bu UNIX zaman damgası, lo olduğunu tahmin size tarih ve peşindeydiler zaman ...

1

vermelidir

UNIX zaman damgası

açıklayan codeproject article yoktur Unix Epoch (Ocak 1970 00:00:00 GMT 1'inde) itibaren saniye sayısı olarak ölçülen zamanı temsil: gic aşağıdaki olurdu dönüşüm. Temelde aşağıdaki olacağını yapmanız gerekenler:

hayır Unix zaman damgası, benziyor
// First make a System.DateTime equivalent to the UNIX Epoch. 
System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0); 
// Add the number of seconds in UNIX timestamp to be converted. 
dateTime = dateTime.AddSeconds(timestamp); 
1

. 01 Ocak 1970'den beri saniye sürüyor. utc ve yerel zaman damgaları hem aynıysa

DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(1268927156); 

, sizin PBX üzerinde saat dilimi ya UTC belirlendiğini ve zaman damgaları gerçekten UTC, veya saat dilimi UTC şekilde ayarlanır ancak zaman olarak ayarlanır almaktadır senin Yerel saat ve yerel zamanınızı her iki zaman damgası için alırsınız. Bunlardan hangilerini UTC'den zaman damgalarını dönüştürmek için kullanacağınızı öğrenmeniz gerekecek.

İlgili konular