如何在 C# 中将纳秒转换为本地 DateTimeOffset?

How to convert nanoseconds to local DateTimeOffset in C#?

如何将纳秒转换为 Datetimeoffset

我试过日期时间

long nanoseconds = 1449491983090000000;
DateTime epochTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Local);
DateTime result1 = epochTime.AddTicks(nanoseconds / 100);

DateTime epochTimfe = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime result2 = epochTime.AddTicks(nanoseconds / 100);

result1result2 都给我 GMT 时间。即

12/7/2015 12:39:43 PM

我从 here

验证了这一点

任何人都可以帮助我如何将纳秒转换为 DateTimeOffset 吗?

您可以在 UTC 中构建 DateTimeOffset 的实例,添加纳秒,然后调用 ToLocalTime 以获取本地版本。

long nanoseconds = 1449491983090000000;
var epochTime = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);
var utc = epochTime.AddTicks(nanoseconds / 100);
var local = utc.ToLocalTime();