3

我在将纳秒转换为时遇到了一点问题,DateTime因此我可以使用 Google Fit API(https://developers.google.com/fit/rest/v1/reference/users/dataSources/datasets/get

数据集标识符,它是最小数据点开始时间和最大数据点结束时间的组合,以从纪元开始的纳秒表示。ID 的格式如下:“startTime-endTime”,其中 startTime 和 endTime 是 64 位整数。

我能够以这种方式从日期时间转换为纳秒

DateTime zuluTime = ssDatetime.ToUniversalTime();
DateTime unixEpoch = new DateTime(1970, 1, 1);
ssNanoSeconds = (Int32)(zuluTime.Subtract(unixEpoch)).TotalSeconds + "000000000";

但现在我需要将纳秒转换为DateTime. 我该怎么做?

4

2 回答 2

7

使用AddTicks方法。不要忘记将纳秒除以 100 以获得滴答声。

long nanoseconds = 1449491983090000000;
DateTime epochTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime result = epochTime.AddTicks(nanoseconds / 100);
于 2015-12-07T12:26:16.220 回答
2

Ticks属性表示 100 纳秒。那么怎么样:

 var ssNanoSeconds = ((zuluTime.Subtract(unixEpoch)).Ticks / 100)

从纳秒到 DateTime

 DateTime dateTime = new DateTime(1970, 1, 1).AddTicks(nanoSeconds * 100) ; 
于 2015-12-07T12:11:04.200 回答