[Cascavel-pm] Horario de Verao

Luis Motta Campos luismottacampos em yahoo.co.uk
Quinta Outubro 26 06:15:47 PDT 2006


  RESUMO CONTRA PREGUIÇA DE LER:
  # 1. Lembre-se de que datas são apenas um número de referência.
  # 2. Manipule datas internamente desta forma.
  # 3. Apresente datas aos usuários formatadas para o fuso horário.
  # 3.1. FUSO HORÁRIO NÃO É INFORMAÇÃO DE DATA.
  #      É INFORMAÇÃO DE APRESENTAÇÃO.
  # 3.2. HORÁRIO DE VERÃO É INFORMAÇÃO DE APRESENTAÇÃO DE DATA.
  use Date;
  use Date::Format;
  __YOU__->rtfm();

Patty Silva wrote:
> Ola Pessoal, Tudo Bem?
> 
> Como ignorar o horario de verao??

  Não ignore o horário de verão, Patty. Os usuários não gostam quando a
gente faz isso. Eles preferem saber que horas são pelo método
tradicional, que divide o tempo em anos, mêses, dias, horas, minutos e
segundos. Mesmo que existam maneiras mais práticas.

> No caso eu faco isso:  UNIX_TIMESTAMP(DATE_ADD($table.datahora, INTERVAL
> -3 HOUR)) para calcular a data em UTC porem quando entra o horario de
> verao essa data tem que ser -2 e nao menos 3 ......
> 
> Alguem pode me ajudar.....

  Patty, você ignorou tudo o que eu falei sobre não usar um RDBMS como
relógio, ou está mesmo tentando resolver um problema com a nossa ajuda
sem contar para a gente qual é o problema?

  Olha, o importante é ter a noção de tempo (isto é, um timestamp ou
valor UTC). Fuso horário, ou "horário de verão" e outras coisas, é
apenas uma forma de enxergar o tempo. É parte da apresentação, não o
dado em si.

  Tendo isto em conta, eu nunca inseriria informação viesada pelo fuso
horário numa base de dados. E se uma empresa japonesa compra a sua
empresa e leva a base de dados para o Japão? Você vai ser obrigada a
fazer UPDATE em todos os registros apenas por causa disso?

  Tente aprender a lidar com datas em formato unix timestamp até o
momento de mostrá-las para o usuário. Aí, use o Date::Format, que
resolve a situação de maneira elegante.

  Claro, você não precisa de um RDBMS para ter datas confiáveis no seu
sistema. Fale com seu Unix SysAdmin e peça para ele instalar um cliente
de NTP no unix que você usa em produção, e use o módulo Date.

  Espero que isso ajude.
  Putamplexos!
-- 
Luis Motta Campos
Senior System Engineer at Segula.FR
Hobbyist Cooker and Photograph


Mais detalhes sobre a lista de discussão Cascavel-pm