2016-12-15 18 views
-2

私は2つのuint32変数を持っています。 Unixのタイムスタンプは秒単位とマイクロ秒単位です。最初の変数は秒を保持し、2番目の変数はマイクロ秒を保持します。それらを一緒に追加してDateTimeOffsetに変換するにはどうすればいいですか?私は、新しいFromUnixTimeSeconds()メソッドと.Net 4.6より前のコードで動作する答えを持つ.Net 4.6固有の回答をしたいと思います。秒とマイクロ秒(Unix時間)からDateTimeOffset

+0

を結果? – Evk

+0

DateTimeOffsetにはAddMicrosecondsメソッドはありません。私は最初にダニが必要だと思う。 – Mark

答えて

1

マイクロ秒は、1​​/1.000.000秒です。 DateTimeOffsetは実際にはAddMicrosecondsを持っていませんが、AddTicksです。ダニはその第二の1/10.000.000です:

DateTimeOffset.FromUnixTimeSeconds(seconds).AddTicks(microSeconds * 10); 

前あなたはこのような何か行うことができます.NET 4.6に:ちょうどそのマイクロ秒を追加し、秒でFromUnixTimeSecondsを呼び出し、そう

new DateTimeOffset(DateTime.SpecifyKind(new DateTime(1970, 1, 1), DateTimeKind.Utc)).AddSeconds(seconds).AddTicks(microSeconds * 10); 
関連する問題