Получить дату в формате UTC из SQL Server и показать в сетке как местное время
У меня есть таблица в SQL Server 2005, в которой есть столбец datetime, содержащий даты в форме UTC. Я хочу, чтобы клиенты вызывали серверное приложение .NET, и сервер возвращал DataTable с записями, которые должны быть привязаны на стороне клиента к DataGridView. ** На клиенте даты должны отображаться в местном времени **, клиенты будут в некоторых регионах мира. Есть ли у кого-нибудь советы по достижению этого? Я, конечно, мог бы добавить несколько строк для циклического просмотра и обновления дат в таблице перед отображением, но я не могу избавиться от ощущения, что должен быть какой-то шикарный фанковый способ сделать это.
ТА !!
Ответов (2)2
DateTime.ToLocalTime - это то, что вы ищете.
По сути, тот факт, что вы вызываете метод, сообщает объекту DateTime добавить смещение текущего языка и региональных параметров от UTC и вернуть результат. DateTime.ToUniversalTime делает наоборот.
Прежде всего, убедитесь, что значения DATETIME в ваших таблицах хранятся как значения UTC.
После этого, когда вы их прочитаете, «клиентское» приложение может преобразовать их в локальное время и дату (что бы это ни было).
При вставке / обновлении материала убедитесь, что вы конвертируете из локального в utc перед сохранением в db.