Как преобразовать наносекунды в локальный DateTimeOffset в C#? - PullRequest
0 голосов
/ 09 января 2020

Как я могу преобразовать наносекунды в 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 дают мне время по Гринвичу. то есть

12/7/2015 12:39:43

Я подтвердил, что с здесь

Может кто-нибудь помогите как конвертировать наносекунды в DateTimeOffset?

1 Ответ

1 голос
/ 09 января 2020

Вы можете просто создать экземпляр DateTimeOffset в UT C, добавить наносекунды, а затем вызвать ToLocalTime, чтобы получить локальную версию.

long nanoseconds = 1449491983090000000;
var epochTime = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);
var utc = epochTime.AddTicks(nanoseconds / 100);
var local = utc.ToLocalTime();
...