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.

clip_image002

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.

clip_image004

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.

Tabela-Timezone-xml-sharepoint

Boas alterações dos fusos e até a proxima!