【发布时间】:2020-01-09 14:33:51
【问题描述】:
如何将纳秒转换为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);
result1 和 result2 都给了我 GMT 时间。即,
2015 年 12 月 7 日下午 12:39:43
我从here验证了这一点
谁能帮我把纳秒转换成DateTimeOffset?
【问题讨论】:
-
你可以尝试使用
DateTimeOffset.FromUnixTimeMilliseconds的方法,添加看这个线程How can I convert a Unix timestamp to DateTime and vice versa? -
纳秒是一个时间单位。 DateTimeOffsets 表示时间的瞬间(具有关联的时区)。您要问的是“我想从公里转换为位置”。如果你确定一个起始位置和一个方向(这对于时间来说不是必需的,只有一个方向),你可以做到,但你需要一个起点(时间跨度中的一个纪元)。您可以很容易地从纳秒获得 TimeSpan。如果您将其添加到开始的 dateTimeOffset,您应该参加比赛
-
另外,一旦你确实有一个正确的
DateTime(通过任何方法),你可以简单地将它传递给DateTimeOffset构造函数并获取它的.ToLocalTime()。这要求DateTimeKind是正确的。
标签: c# datetime datetimeoffset