UTC の日時を表す整数を含むフィールドを持つレガシー データベースがあります。
ドキュメントから: 「CDR 内のタイムスタンプは協定世界時 (UTC) で表示されます。この値は、夏時間の変更とは無関係のままです」
値の例は 1236772829 です。
私の質問は、UTC 値と現地時間値の両方として、(DB ではなく CLR コードで) .NET DateTime に変換する最良の方法は何かということです。
グーグルで検索しようとしましたが、運がありませんでした。
整数が実際に何を意味するのかを知る必要があります。これは通常、次のもので構成されます。
2 つの値とその意味を UTC で取得できれば、あとは簡単です。最も簡単な方法は、おそらくエポックとしてDateTime
(または) を持ち、整数から a を構築することです。たとえば、2 つを足し合わせれば完了です。編集:またはaakashmの答えに従って使用することは、このビットを行うためのより簡単な方法です:)DateTimeOffset
TimeSpan
TimeSpan.FromMilliseconds
AddSeconds
AddMilliseconds
または、自分で算術を行い、DateTime
ティック数を取るコンストラクターを呼び出します。(間違いなく、a を使用するバージョンのDateTimeKind
方が優れているため、UTC であることを明示的に示すことができます。)