0

UTC の日時を表す整数を含むフィールドを持つレガシー データベースがあります。

ドキュメントから: 「CDR 内のタイムスタンプは協定世界時 (UTC) で表示されます。この値は、夏時間の変更とは無関係のままです」

値の例は 1236772829 です。

私の質問は、UTC 値と現地時間値の両方として、(DB ではなく CLR コードで) .NET DateTime に変換する最良の方法は何かということです。

グーグルで検索しようとしましたが、運がありませんでした。

4

2 に答える 2

4

整数が実際に何を意味するのかを知る必要があります。これは通常、次のもので構成されます。

  • エポック/オフセット (つまり、0 の意味) - たとえば、「1970 年 1 月 1 日の真夜中」
  • 秒、ミリ秒、ティックなどのスケール。

2 つの値とその意味を UTC で取得できれば、あとは簡単です。最も簡単な方法は、おそらくエポックとしてDateTime(または) を持ち、整数から a を構築することです。たとえば、2 つを足し合わせれば完了です。編集:またはaakashmの答えに従って使用することは、このビットを行うためのより簡単な方法です:)DateTimeOffsetTimeSpanTimeSpan.FromMillisecondsAddSecondsAddMilliseconds

または、自分で算術を行い、DateTimeティック数を取るコンストラクターを呼び出します。(間違いなく、a を使用するバージョンのDateTimeKind方が優れているため、UTC であることを明示的に示すことができます。)

于 2009-03-13T10:43:10.370 に答える