将纳秒转换为日期时间

时间:2015-12-07 12:08:20

标签: c# datetime google-fit google-fit-sdk

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

  

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

我能够以这种方式从datetime转换为纳秒

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

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

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

从纳秒到日期时间

 DateTime dateTime = new DateTime(1970, 1, 1).AddTicks(nanoSeconds * 100) ;