秒和微秒(Unix时间)到DateTimeOffset

时间:2016-12-15 11:23:03

标签: c#

我有两个uint32变量。它们表示以秒和微秒为单位的Unix时间戳。第一个变量保持秒,第二个变量保持微秒。如何将它们一起添加并将它们转换为DateTimeOffset。我想要一个特定于.Net 4.6的答案,该答案具有新的FromUnixTimeSeconds()方法,并且答案可以使用.Net 4.6之前的代码。

1 个答案:

答案 0 :(得分:2)

微秒是1 / 1.000.000秒。 DateTimeOffset确实没有AddMicroseconds,但它有AddTicks。 Tick是1 / 10.000.000秒,所以:

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

在.NET 4.6之前,您可以执行以下操作:

new DateTimeOffset(DateTime.SpecifyKind(new DateTime(1970, 1, 1), DateTimeKind.Utc)).AddSeconds(seconds).AddTicks(microSeconds * 10);