C # /. NET Дата: с местного на UTC - PullRequest
3 голосов
/ 25 апреля 2011

Я получаю данные о дате от пользователя. Этими данными являются дата (например, 23.04.2011) и час (0 - 23), представляющие время. Эта дата / время, которое выбирает пользователь, является местным временем.

Мне нужно преобразовать это в UTC DateTime. У меня есть их GMTOffset для их местоположения. Как я могу это сделать?

Ответы [ 3 ]

1 голос
/ 25 апреля 2011

Вы должны работать со структурой DateTimeOffset , в частности с конструктором , который принимает DateTime и TimeSpan, который представляет смещение .

Оттуда преобразование в / из UTC является быстрым, так как смещение встроено в структуру и не зависит от настроек локальной системы.

Обратите внимание, что, хотя обычно не соблюдается, рекомендуется работать с DateTimeOffset большую часть времени, в отличие от DateTime (см. примечание под разделом «Структура DateTimeOffset»).

0 голосов
/ 25 апреля 2011
var utcDateTime = 
     new DateTimeOffset(userDateTime, TimeSpan.FromHours(userUtcOffset)).UtcDateTime;

Конечно, вы можете использовать TimeSpan по-другому, если смещение по Гринвичу имеет минуты / доли часа.

0 голосов
/ 25 апреля 2011

Просто используйте DateTime.ToUniversalTime в C #, это будет делать то, что вы хотите?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...