Получить дату в формате UTC из SQL Server и показать в сетке как местное время

У меня есть таблица в SQL Server 2005, в которой есть столбец datetime, содержащий даты в форме UTC. Я хочу, чтобы клиенты вызывали серверное приложение .NET, и сервер возвращал DataTable с записями, которые должны быть привязаны на стороне клиента к DataGridView. ** На клиенте даты должны отображаться в местном времени **, клиенты будут в некоторых регионах мира. Есть ли у кого-нибудь советы по достижению этого? Я, конечно, мог бы добавить несколько строк для циклического просмотра и обновления дат в таблице перед отображением, но я не могу избавиться от ощущения, что должен быть какой-то шикарный фанковый способ сделать это.

ТА !!

Ответов (2)

Решение

DateTime.ToLocalTime - это то, что вы ищете.

По сути, тот факт, что вы вызываете метод, сообщает объекту DateTime добавить смещение текущего языка и региональных параметров от UTC и вернуть результат. DateTime.ToUniversalTime делает наоборот.

Прежде всего, убедитесь, что значения DATETIME в ваших таблицах хранятся как значения UTC.

После этого, когда вы их прочитаете, «клиентское» приложение может преобразовать их в локальное время и дату (что бы это ни было).

При вставке / обновлении материала убедитесь, что вы конвертируете из локального в utc перед сохранением в db.