Caso alguém esteja com problemas com o horário de verão, pode pegar esse script na internet, que funciona. Já testei em Linux e FreeBSD:
http://web.onda.com.br/humberto/arquivo/HorarioDeVerao.sh Como o próprio dono do script disse, é um POG (*) , mas funciona :-) (*) POG = http://desciclo.pedia.ws/wiki/POG -- Jeronimo Zucco LPIC-1 Linux Professional Institute Certified Núcleo de Processamento de Dados Universidade de Caxias do Sul http://jczucco.blogspot.com Citando Dorneles Treméa <[EMAIL PROTECTED]>: > Opa Braga, > > > Eu tenho ZSQL que traz a data do banco e não há qualquer manipulação e etc. > > Hum... e qual o timezone dessa data que o banco está retornado? > > Eu aposto que o furo está aqui... > > > no zsql eu tenho o "select" ... tenho um script python que carrega esse > > SZQL e repassa ao ZPT (com a opção dictionaries) e no ZPT é extamente > > este trecho > > > > tal:attributes="value > python:DateTime(*MinhaData.parts()[:3]).strftime('%d/%m/%Y')" > > > > se eu tentar algo como: > > > > tal:attributes="value python:DateTime(MinhaData).strftime('%d/%m/%Y')" > > Opa, opa, porque cargas d'água você está criando um novo DateTime se > o MinhaData retornado já é um DateTime? :-) > > Isso altera o timezone da data para o timezone usado no Zope, veja > uma explicação mais detalhada abaixo. > > > Um dia é subtraído da data > > Será? Eu diria que isso é tecnicamente *impossível*... ;-) > > O que está acontecendo é que a representação do mesmo DateTime > em timezones diferentes é, como esperado, diferente. Porém a data > continua sendo a mesma, afinal quando já é zero hora de amanhã em > Londres, ainda são 21:00 aqui, na pacata Garibaldi, assim como > são 2:00 da matina na igualmente pacata Tønsberg, na Noruega. > > Deixa eu tentar provar isso... > > Se a data que estiver retornando do banco estiver num timezone > diferente do que é usado no Zope o que ocorre é o seguinte: > > >>> # Criando uma data no formato ISO 8601[1] (timezone: GMT+0) > >>> UTC = DateTime('2006-10-18') > >>> UTC.parts() > (2006, 10, 18, 0, 0, 0.0, 'GMT+0') > > Agora, se você passar esse DateTime como parâmetro para a criação > de outro DateTime (que é o que você está fazendo no PageTemplate > por uma razão que eu desconheço), o timezone dele muda para o do > Zope (que herda o que estiver definido pelo sistema operacional): > > >>> DateTime(UTC).parts() > (2006, 10, 17, 21, 0, 0.0, 'GMT-3') > > Note que mesmo a representação sendo diferente, eles continuam > sendo a mesma coisa: > > >>> UTC == DateTime(UTC) > True > >>> UTC.timezone() == DateTime(UTC).timezone() > False > > Ou seja, continua sendo a mesma 'data' só que em timezones > diferente. Esse é o problema comum quanso se usa datas sem um > timezone associado. > > A solução para o seu problema é fazer com que a instância do > DateTime criada pelo banco esteja no mesmo timezone do que está > sendo usado no Zope. A forma mais simples é fazendo o banco > retornar uma string ISO 8601 ou, de forma mais simplificada, > "AAAA-MM-DD GMT±X" ou ainda algo mais simples, "AAAA/MM/DD", > detalhe para as barras no lugar dos traços. > > Espero ter ajudado a entender a questão e, conseqüentemente, > a resolver o problema. > > [1] http://www.w3.org/TR/NOTE-datetime > > HTH, > > -- > > Dorneles Treméa > X3ng Web Technology > ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. Para enviar uma mensagem: zope-pt@yahoogrupos.com.br Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/zope-pt/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html