我正在使用pbx进行voip调用。 pbx的一个方面是您可以选择接收CDR包。这些包有2个时间戳:“utc”和“local”,但两者似乎总是相同。
以下是时间戳示例:“1268927156”。
乍一看,似乎没有任何逻辑。所以我尝试了几种方式转换它,但没有好结果。该值应该在今天上午11点左右(+ 1GMT)提供时间。我尝试的事情:
以及其他一些我现在都记不住的了。
我在这里错过了一些愚蠢的东西吗?
提前致谢
答案 0 :(得分:12)
这看起来像Unix时间。
1268927156 =星期四,2010年3月18日15:45:56 GMT
代码示例:
DateTime startDate = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
DateTime time = startDate.AddSeconds(1268927156 );
答案 1 :(得分:2)
似乎是一个Unix时间戳(自纪元以来的秒数)
DateTime translated = new DateTime(1970,1,1).AddSeconds(1268927156);
应该给你你的日期和时间......
答案 2 :(得分:1)
我想这是一个UNIX时间戳,逻辑如下:
UNIX时间戳表示自Unix Epoch(1970年1月1日00:00:00 GMT)以来的秒数测量的时间
有codeproject article解释转换。基本上你需要做的是:
// 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);
答案 3 :(得分:1)
这看起来像一个unix时间戳,这是no。自1970年1月1日以来的几秒钟。
DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(1268927156);
如果utc和本地时间戳相同,则PBX上的时区设置为UTC,时间戳确实为UTC,或者时区设置为UTC但时间设置为当地时间,并且你得到两个时间戳的当地时间。你必须弄清楚哪一个你知道如何转换UTC的时间戳。