8

私はVoIP通話のためにpbxを使用しています。pbxの1つの側面は、CDRパッケージの受信を選択できることです。これらのパッケージには、「utc」と「local」の2つのタイムスタンプがありますが、どちらも常に同じように見えます。

タイムスタンプの例を次に示します:"1268927156"。

一見すると、そこには論理がないようです。そこで、いくつかの方法で変換してみましたが、良い結果は得られませんでした。その値は、今日の午前11時(+ 1GMT)前後の時間を提供するはずです。

私が試したこと:

  • 日時dt=new Datetime(number);
  • タイムスパンts=new Timespan(number);
  • DateTime utc = new DateTime(number + 504911232000000000、DateTimeKind.Utc)

そして今は思い出せない人もいます。

私はここで愚かな何かを逃していますか?

前もって感謝します

4

4 に答える 4

15

これは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 );
于 2010-03-19T13:47:45.690 に答える
3

Unix タイムスタンプのようです (エポックからの秒数)

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

その後の日付と時刻が表示されるはずです...

于 2010-03-19T13:49:20.987 に答える
2

これはUNIXタイムスタンプのように見えます。1970年1月1日からの秒数。

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

UTCとローカルタイムスタンプの両方が同じである場合、PBXのタイムゾーンはUTCに設定され、タイムスタンプは実際にはUTCであるか、タイムゾーンはUTCに設定されていますが、時刻は現地時間に設定されています。両方のタイムスタンプの現地時間。タイムスタンプをUTCから変換するかどうかがわかるように、これらのどれを把握する必要があります。

于 2010-03-19T13:53:13.987 に答える
1

これはUNIXタイムスタンプだと思いますが、ロジックは次のようになります。

UNIXタイムスタンプは、Unixエポック(1970年1月1日00:00:00 GMT)からの秒数で測定された時間を表します。

変換を説明するcodeprojectの記事があります。基本的にあなたがする必要があることは次のようになります:

// 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);
于 2010-03-19T13:50:52.120 に答える