Horario de Verão - Sharepoint altera a data e hora de uma entrada sozinho
By: Daniel Aguiar / Technical Reviewer: Mauricio Rincon
"Não consigo gravar uma entrada no dia de início do horário de verão, por que o Sharepoint muda a entrada sozinho."
Esse foi um caso que trabalhei recentemente e acredito ser interessante para alertar os demais admisnitradores Sharepoint.
Cenário
O cenário é simples de entender e de reproduzir.
Vamos supor que você tem uma lista no Sharepoint (WSS 3 ou MOSS 2K7) com um campo para receber datas no formato dd/mm/aaaa.
Nessa lista você deseja incluir uma entrada com um nome qualquer (“Teste 1” por exemplo), e com a data de “18/10/2009”, que é exatamente o dia que se inicia o horário de verão.
Dependendo de como o seu arquivo timezone.xml está configurado, o Sharepoint vai mudar a data para “17/10/2009” logo após você salvar o item.
Por que isso acontece?
Isso acontece devido ao metodo de gravação de dados no SQL e também a configuração do Timezone.xml. Vamos entendê-los:
Como as datas são guardadas no SQL?
Os campos que são visualizados como apenas data são salvos no SQL com data e hora.
Por exemplo toda vez que você salva uma data como "18-oct-2009", na verdade você está guardando "18-oct-2009 00:00" no SQL.
Como o horário de verão atua?
O arquivo timezone.xml indica a data e a hora para início do horário de verão em cada fuso horário no globo.
Se horario de verão inicia em “18-oct-2009 00:00” todos os registros nesse horário serão guardados no SQL com “-60 minutos” ou seja “17-oct-2009 23:00”.
O comportamento.
Sendo assim, toda vez que você salvar uma entrada com data para "18-oct-2009" esta será guardada no SQL como "18-oct-2009 00:00", mas como esse horário cai extamente no inicio de horário verão, o Sharepoint altera para "17-oct-2009 23:00" (com 1 hora a menos).
O que fazer para evitar isso?
Você pode adaptar o arquivo Timezone.xml de modo que o horário de verão inicie uma hora depois do normal, como por exemplo "18-oct-2009 02:00".
Deste modo, os campos com apenas data que serão salvos em "18-oct-2009", e guardados no SQL como "18-oct-2009 00:00" não terão o mesmo horário que o inicio de horário de verão (que agora será 18-oct-2009 02:00 AM) e portanto não terão suas datas alteradas.
Como fazer a alteração do timezone.xml?
Se decidir por alterar o horário de verão no Sharepoint, o KB 888253 lhe ajudará a fazer isso.
Também é interessante que você veja as dicas do nosso amigo Mauricio Rincon, aqui nesse blog:
Atualização de DST para SharePoint
Também montei uma tabela para lhe ajudar a interpretar o arquivo timezone.xml, veja nessa imagem.
Boas alterações dos fusos e até a proxima!