Obter data UTC fora do SQL Server e mostrar na grade como hora local
Pergunta
Eu tenho uma tabela no SQL Server 2005 que tem uma coluna datetime datas de retenção em forma de UTC. Quero clientes para chamar a um aplicativo de servidor .NET e o servidor retornará um DataTable com registros a ser do lado do cliente ligado a um DataGridView. ** No cliente as datas devem ser exibidas na hora local **, os clientes estarão em regiões de Maio do mundo. Alguém tem alguma dica sobre alcançar este objectivo? Eu poderia de adicionar curso algumas linhas para percorrer e atualizar as datas na tabela antes da exibição, mas não posso deixar de sentir lá tem que haver alguma maneira snazzy funk de fazer isso.
TA !!
Solução
DateTime.ToLocalTime É o que você' re procurando.
Essencialmente, o fato de que você está chamando o método diz ao objeto DateTime para adicionar a cultura atual deslocamento do UTC de e retornar o resultado. DateTime.ToUniversalTime faz o contrário.
Outras dicas
Em primeiro lugar, certifique-se que os valores de data e hora no suas tabelas são armazenados como valores UTC.
Depois disso, quando você lê-los, o aplicativo "cliente" pode convertê-los em data e hora local (seja ele qual for).
Ao inserir / atualizar o material Certifique-se de converter de local em UTC antes de armazenar no banco de dados.