Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Converting Nanoseconds to Datetime

I'm having a little trouble converting nanoseconds to DateTime so i can use the Google Fit API (https://developers.google.com/fit/rest/v1/reference/users/dataSources/datasets/get)

Dataset identifier that is a composite of the minimum data point start time and maximum data point end time represented as nanoseconds from the epoch. The ID is formatted like: "startTime-endTime" where startTime and endTime are 64 bit integers.

I was able to convert from datetime to Nanoseconds this way

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

But now i need to convert nanoseconds to DateTime. How can i do it?

like image 383
Luis Avatar asked Nov 07 '25 06:11

Luis


1 Answers

Use AddTicks method. Don't forget to divide nanoseconds by 100 to get ticks.

long nanoseconds = 1449491983090000000;
DateTime epochTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime result = epochTime.AddTicks(nanoseconds / 100);
like image 130
Sergii Zhevzhyk Avatar answered Nov 09 '25 23:11

Sergii Zhevzhyk