C# 将纳秒转换为日期时间

C# 将纳秒转换为日期时间,c#,datetime,google-fit,google-fit-sdk,C#,Datetime,Google Fit,Google Fit Sdk,我在将纳秒转换为DateTime时遇到了一些问题,因此我可以使用Google Fit API() 数据集标识符,它是最小数据点起点的组合 时间和最大数据点结束时间表示为从 时代。ID的格式为:“startTime endTime”,其中 startTime和endTime是64位整数 我可以通过这种方式将datetime转换为纳秒 DateTime zuluTime = ssDatetime.ToUniversalTime(); DateTime unixEpoch = new DateTime

我在将纳秒转换为
DateTime
时遇到了一些问题,因此我可以使用Google Fit API()

数据集标识符,它是最小数据点起点的组合 时间和最大数据点结束时间表示为从 时代。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
。如何执行此操作?

属性表示100纳秒。那么:

 var ssNanoSeconds = ((zuluTime.Subtract(unixEpoch)).Ticks / 100)
从纳秒到日期时间

 DateTime dateTime = new DateTime(1970, 1, 1).AddTicks(nanoSeconds * 100) ; 
使用方法。别忘了用纳秒除以100得到滴答声

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

滴答声
分辨率为100纳秒。您可以使用
AddTicks
方法添加它。从什么时候开始纳秒?1970-01-01T00:00:00Z或其他时间?您的
新日期时间
DateTime.MinValue
开始,而不是unix历元。此外,第一行中的纳秒需要乘以100,并在第二个示例中除以。所以:
(zuluTime.Subtract(unixEpoch)).Ticks*100..
.AddTicks(纳秒/100)