Изменить смещение в DateTimeOffset - PullRequest
0 голосов
/ 12 января 2020

Я использую Google TimeZone API, чтобы дать мне смещение UT C на основе адреса. Например, для города Лима он возвращает -18000 секунд.

Как я могу использовать эту информацию в DateTimeOffset и заставить ее изменять только свойство Offset, учитывающее разницу в секундах, чтобы оно показывало текущее время, но где смещение изменяется следующим образом?

DateTime = {12-01-2020 21:15:33} => DateTimeOffset = {12-01-2020 21:15:33 -05: 00 }

А для Парижа должно быть +01: 00 в свойстве Offset.

1 Ответ

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

Я думаю, я понял это. Кажется, это работает:

DateTimeOffset now = DateTimeOffset.UtcNow; //{13-01-2020 07:39:04 +00:00}
TimeSpan timeSpanInterval = TimeSpan.FromSeconds(googleTimeZone.dstOffset + googleTimeZone.rawOffset); // {-05:00:00}
dateTimeOffset = now.ToOffset(timeSpanInterval); // {13-01-2020 02:39:04 -05:00}

Может быть, это можно сделать другим способом, но, похоже, это свойство Offset установлено так, как я хочу.

...