RES: [flex-brasil] Bug no Date do Flex - Horário de Verão

75 views
Skip to first unread message

Jose Maria de Oliveira

unread,
Oct 13, 2009, 10:22:19 AM10/13/09
to flex-...@yahoogrupos.com.br
 

Tudo bem Sergio?

Deve estar relacionado com o horário de verão que cria automático pelo
Windows.

E se você usar o GregorianCalendar e forçar a hora para 2 da manhã? Assim
quando diminuir uma hora obterá a data correta.

[]s,

_____

<http://www.dtsconsulting.com/>

José Maria Oliveira
Desenvolvedor

jose.oliveira@dtsconsulting.com

Tel.: 55 (11) 4134-9698
Fax: 55 (11) 4134-9610

_____

_____

De: flex-brasil@yahoogrupos.com.br [mailto:flex-brasil@yahoogrupos.com.br]
Em nome de Sergio - "I'm he as you're he as you're me and we're all
together..."
Enviada em: terça-feira, 13 de outubro de 2009 11:11
Para: flex-brasil
Assunto: [flex-brasil] Bug no Date do Flex - Horário de Verão

Olá pessoal,

Bem, o Flex me surpreendeu agora.

Basicamente, em determinado momento da aplicação criamos um dia específico
(dia 13 de outubro). Com um new Date() mesmo.

Esse dia tem 0h, 0 minutos, e 0 segundos. O que acontece? Quando mando ele
pro Java, ele chega com -1h do que especifiquei. Logo, ele chega como se
fosse o dia 12 de outubro às 11h da noite! Creio que tem algo a ver com o
horário de verão. Pois o servidor Linux atualizou a hora automaticamente em
+1h. E engraçado que isso ocorre somente no dia 13 de outubro.

Alguém tem alguma referência sobre isso?

[As partes desta mensagem que não continham texto foram removidas]

[As partes desta mensagem que não continham texto foram removidas]

__._,_.___
Flex-Brasil - A maior lista sobre Adobe Flex do Brasil
Regras da lista - http://docs.google.com/View?id=ajjv3tjg5jxf_21cqhpdhf5
Todos os participantes tem os seguintes benefícios:
+ 35% de desconto em livros da O'Reilly ou Peachpit

Site Oficial Flex : http://www.flex.org
Visite nosso site : http://groups.adobe.com/groups/8024da86da/summary
-------------
Conheça a AIR-Brasil a comunidade sobre Adobe AIR
Visite o site:http://groups.google.com/group/air-brasil

Atividade nos últimos dias
Visite seu Grupo
Yahoo! Mail

Conecte-se ao mundo

Proteção anti-spam

Muito mais espaço

Yahoo! Barra

Instale grátis

Buscar sites na web

Checar seus e-mails .

Yahoo! Grupos

Crie seu próprio grupo

A melhor forma de comunicação

.

__,_._,___

Sergio - "I'm he as you're he as you're me and we're all together..."

unread,
Oct 13, 2009, 10:42:05 AM10/13/09
to flex-...@yahoogrupos.com.br
 

Olá José,

Mas esse é o negócio. A classe de Date() do Java usa nativamente o
GregorianCalendar. Mas eu já desativei mesmo esse horário de verão aqui do
Windows.

Basicamente, o Java manda uma data (dia 13). E eu tenho que confirmar, então
devolvo a data (e lá chega dia 12, com 23h). Mas não estou fazendo nenhuma
operação de decrementar horas aqui no Flex. Não mesmo. É basicamente um ping
pong.

Eu soube que a Bancoob teve um problema parecido com esse, de horário de
verão. Era pra gerar os relatórios em um dia à meia noite e ele estava
gerando antes, ou seja, 11h do dia anterior. Então pelo que me disseram até
tomaram uma multa do BC por causa deste problema.

E o engraçado é que na hora que envio ele, ele parece ir como dia 13. Será
algo relativo na hora do Blaze deserializar o objeto?

Grato!!!



2009/10/13 Jose Maria de Oliveira <jose.oliveira@dtsconsulting.com>

>
>
> Tudo bem Sergio?
>
> Deve estar relacionado com o horário de verão que cria automático pelo
> Windows.
>
> E se você usar o GregorianCalendar e forçar a hora para 2 da manhã? Assim
> quando diminuir uma hora obterá a data correta.
>
> []s,
>
> _____
>
> <http://www.dtsconsulting.com/>
>
> José Maria Oliveira
> Desenvolvedor
>

> jose.oliveira@dtsconsulting.com <jose.oliveira%40dtsconsulting.com>


>
> Tel.: 55 (11) 4134-9698
> Fax: 55 (11) 4134-9610
>
> _____
>
> _____
>

> De: flex-brasil@yahoogrupos.com.br <flex-brasil%40yahoogrupos.com.br>[mailto:
> flex-brasil@yahoogrupos.com.br <flex-brasil%40yahoogrupos.com.br>]
> Em nome de Sergio - "I'm he as you're he as you're me and we're all
> together..."
> Enviada em: terça-feira, 13 de outubro de 2009 11:11
> Para: flex-brasil
> Assunto: [flex-brasil] Bug no Date do Flex - Horário de Verão
>
>
> Olá pessoal,
>
> Bem, o Flex me surpreendeu agora.
>
> Basicamente, em determinado momento da aplicação criamos um dia específico
> (dia 13 de outubro). Com um new Date() mesmo.
>
> Esse dia tem 0h, 0 minutos, e 0 segundos. O que acontece? Quando mando ele
> pro Java, ele chega com -1h do que especifiquei. Logo, ele chega como se
> fosse o dia 12 de outubro às 11h da noite! Creio que tem algo a ver com o
> horário de verão. Pois o servidor Linux atualizou a hora automaticamente em
> +1h. E engraçado que isso ocorre somente no dia 13 de outubro.
>
> Alguém tem alguma referência sobre isso?
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>

[As partes desta mensagem que não continham texto foram removidas]


__,_._,___

Mário Júnior

unread,
Oct 13, 2009, 10:45:39 AM10/13/09
to flex-...@yahoogrupos.com.br
 

o velho problema do daylight.

Lembrem-se:
- o FP roda no cliente, entao ele vai pegar sempre as configurações do SO
do cliente, como as configurações regionais que possuem o dia da mudança do
horario de verao. A principio, o padrao é dia 12/10 mas no Brasil essa data
é variavel, todo ano muda.

Então, uma forma de vc contornar isso é trabalhar SEMPRE com data UTC
(universal time).
Se sua app só roda aqui no Brasil.. blz.. vai dar certo.

Agora, no caso em q uma app rodava em filiais com diferenças de timezone, e
q no servidor era preciso salvar duas datas (uma local da filial e outra
data local do servidor + gmt da filial) foi preciso eu extender meu BlazeDS.
Não é dificil, só acho interessante como pouca gente sabe disso :)

A solução (algoritmo) está descrito aqui:
http://cookbooks.adobe.com/post_Date_time_transfer_in_BlazeDS-13114.html

MAS... eu achei horrivel essa ideia de trabalhar com esses getters/setters
poluindo os objeto VOs... então, criei uma anotação propria (annotation)
onde eu marcava meus atributos java.util.Date e escrevi um adapter proprio
extendendo o JavaAdapter do BlazeDS. Nesse ponto eu simplesmente procurava
pelos campos que tinham a minha anotação e ajustava o TimeZone deles usando
a solucao do link acima. Pronto, problema resolvido e reutilizavel tb para
outros tipos de serialização (como por exemplo, sempre receber Number/int
com null vindo do flex em vez dos 0 (zeros) que sao serializados por
default).

Boa sorte.



2009/10/13 Jose Maria de Oliveira <jose.oliveira@dtsconsulting.com>

>
>

> Tudo bem Sergio?
>
> Deve estar relacionado com o horário de verão que cria automático pelo
> Windows.
>
> E se você usar o GregorianCalendar e forçar a hora para 2 da manhã? Assim
> quando diminuir uma hora obterá a data correta.
>
> []s,
>
> _____
>
> <http://www.dtsconsulting.com/>
>
> José Maria Oliveira
> Desenvolvedor
>

> jose.oliveira@dtsconsulting.com <jose.oliveira%40dtsconsulting.com>


>
> Tel.: 55 (11) 4134-9698
> Fax: 55 (11) 4134-9610
>
> _____
>
> _____
>

> De: flex-brasil@yahoogrupos.com.br <flex-brasil%40yahoogrupos.com.br>[mailto:
> flex-brasil@yahoogrupos.com.br <flex-brasil%40yahoogrupos.com.br>]
> Em nome de Sergio - "I'm he as you're he as you're me and we're all
> together..."
> Enviada em: terça-feira, 13 de outubro de 2009 11:11
> Para: flex-brasil
> Assunto: [flex-brasil] Bug no Date do Flex - Horário de Verão
>
>
> Olá pessoal,
>
> Bem, o Flex me surpreendeu agora.
>
> Basicamente, em determinado momento da aplicação criamos um dia específico
> (dia 13 de outubro). Com um new Date() mesmo.
>
> Esse dia tem 0h, 0 minutos, e 0 segundos. O que acontece? Quando mando ele
> pro Java, ele chega com -1h do que especifiquei. Logo, ele chega como se
> fosse o dia 12 de outubro às 11h da noite! Creio que tem algo a ver com o
> horário de verão. Pois o servidor Linux atualizou a hora automaticamente em
> +1h. E engraçado que isso ocorre somente no dia 13 de outubro.
>
> Alguém tem alguma referência sobre isso?
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>

--
Mario Junior
Enterprise Java / Flex Architectures
Adobe Certified Expert Flex 3 with AIR

Sofshore Informática
http://www.sofshore.com.br
+55 (48) 3337 2003
Rua Pastor Willian Richard Schisler Filho 452 sl 102, 88034-100 Itacorubi
Florianopolis SC Brasil



[As partes desta mensagem que não continham texto foram removidas]


__,_._,___

Mário Júnior

unread,
Oct 13, 2009, 10:55:20 AM10/13/09
to flex-...@yahoogrupos.com.br
 

Bem... vamos dizer que é "meia culpa" do BlazeDS e "meia-culpa" do
FlashPlayer.
Digo "meia-culpa" pq na verdade o FP manda um objeto Date de verdade (com
GMT definido), oq antes em javascript vc mandaria uma string (eca...).

A "meia-culpa" do BlazeDS é que ele nao considera o GMT do objeto Date
enviado pelo flash player... alias, ele até considera, mas para fazer a
conversao pro objeto java.util.Date esse GMT acaba influenciando na
instancia do objeto alterando o seu valor.

Agora.. quer ver um treco bizarro?
- Ajuste seu locale para Japao, rode a app flex aqui.
- Envie para o BlazeDS (q esteja rodando em outra maquina com timeZone para
Brasil).
- Veja a data salva no Banco de dados lá no servidor.
- Agora, ajuste o timaezone do client do Japao para o Brasil (a principio, o
mesmo do servidor)
- Depois, carregue o objeto do servidor e exiba-o num datagrid (por exemplo)
nesse cliente q agora é do Brasil.

Veras q a data não correponde a nenhum dos estados iniciais.... bizarro né
:D

[]s

2009/10/13 Sergio - "I'm he as you're he as you're me and we're all
together..." <sergio.flexdoc@gmail.com>



>
>
> Olá José,
>
> Mas esse é o negócio. A classe de Date() do Java usa nativamente o
> GregorianCalendar. Mas eu já desativei mesmo esse horário de verão aqui do
> Windows.
>
> Basicamente, o Java manda uma data (dia 13). E eu tenho que confirmar,
> então
> devolvo a data (e lá chega dia 12, com 23h). Mas não estou fazendo nenhuma
> operação de decrementar horas aqui no Flex. Não mesmo. É basicamente um
> ping
> pong.
>
> Eu soube que a Bancoob teve um problema parecido com esse, de horário de
> verão. Era pra gerar os relatórios em um dia à meia noite e ele estava
> gerando antes, ou seja, 11h do dia anterior. Então pelo que me disseram até
> tomaram uma multa do BC por causa deste problema.
>
> E o engraçado é que na hora que envio ele, ele parece ir como dia 13. Será
> algo relativo na hora do Blaze deserializar o objeto?
>
> Grato!!!
>

> 2009/10/13 Jose Maria de Oliveira <jose.oliveira@dtsconsulting.com<jose.oliveira%40dtsconsulting.com>


> >
>
>
> >
> >
> > Tudo bem Sergio?
> >
> > Deve estar relacionado com o horário de verão que cria automático pelo
> > Windows.
> >
> > E se você usar o GregorianCalendar e forçar a hora para 2 da manhã? Assim
> > quando diminuir uma hora obterá a data correta.
> >
> > []s,
> >
> > _____
> >
> > <http://www.dtsconsulting.com/>
> >
> > José Maria Oliveira
> > Desenvolvedor
> >

> > jose.oliveira@dtsconsulting.com <jose.oliveira%40dtsconsulting.com><jose.oliveira%


> 40dtsconsulting.com>
> >
> > Tel.: 55 (11) 4134-9698
> > Fax: 55 (11) 4134-9610
> >
> > _____
> >
> > _____
> >

--
Mario Junior
Enterprise Java / Flex Architectures
Adobe Certified Expert Flex 3 with AIR

Sofshore Informática
http://www.sofshore.com.br
+55 (48) 3337 2003
Rua Pastor Willian Richard Schisler Filho 452 sl 102, 88034-100 Itacorubi
Florianopolis SC Brasil

[As partes desta mensagem que não continham texto foram removidas]


__,_._,___

Sergio - "I'm he as you're he as you're me and we're all together..."

unread,
Oct 13, 2009, 11:09:51 AM10/13/09
to flex-...@yahoogrupos.com.br
 

Olá Mário,

Muito obrigado por compartilhar sobre isso. É esse o exato problema.

Grato!

> 2009/10/13 Jose Maria de Oliveira <jose.oliveira@dtsconsulting.com<jose.oliveira%40dtsconsulting.com>


> >
>
> >
> >
> > Tudo bem Sergio?
> >
> > Deve estar relacionado com o horário de verão que cria automático pelo
> > Windows.
> >
> > E se você usar o GregorianCalendar e forçar a hora para 2 da manhã? Assim
> > quando diminuir uma hora obterá a data correta.
> >
> > []s,
> >
> > _____
> >
> > <http://www.dtsconsulting.com/>
> >
> > José Maria Oliveira
> > Desenvolvedor
> >

> > jose.oliveira@dtsconsulting.com <jose.oliveira%40dtsconsulting.com><jose.oliveira%


> 40dtsconsulting.com>
> >
> > Tel.: 55 (11) 4134-9698
> > Fax: 55 (11) 4134-9610
> >
> > _____
> >
> > _____
> >

> > De: flex-brasil@yahoogrupos.com.br <flex-brasil%40yahoogrupos.com.br><flex-brasil%
> 40yahoogrupos.com.br>[mailto:
> > flex-brasil@yahoogrupos.com.br <flex-brasil%40yahoogrupos.com.br><flex-brasil%
> 40yahoogrupos.com.br>]


__,_._,___

Jose Maria de Oliveira

unread,
Oct 13, 2009, 11:21:11 AM10/13/09
to flex-...@yahoogrupos.com.br
 

Valeu Mário!!!



[]s,

_____

<http://www.dtsconsulting.com/>

José Maria Oliveira
Desenvolvedor

jose.oliveira@dtsconsulting.com

Tel.: 55 (11) 4134-9698
Fax: 55 (11) 4134-9610

_____

_____

De: flex-brasil@yahoogrupos.com.br [mailto:flex-brasil@yahoogrupos.com.br]
Em nome de Sergio - "I'm he as you're he as you're me and we're all
together..."
Enviada em: terça-feira, 13 de outubro de 2009 12:10
Para: flex-brasil@yahoogrupos.com.br
Assunto: Re: [flex-brasil] Bug no Date do Flex - Horário de Verão

Olá Mário,

Muito obrigado por compartilhar sobre isso. É esse o exato problema.

Grato!

2009/10/13 Mário Júnior <juninhog12@gmail. <mailto:juninhog12%40gmail.com>


com>

>
>
> o velho problema do daylight.
>
> Lembrem-se:
> - o FP roda no cliente, entao ele vai pegar sempre as configurações do SO
> do cliente, como as configurações regionais que possuem o dia da mudança
do
> horario de verao. A principio, o padrao é dia 12/10 mas no Brasil essa
data
> é variavel, todo ano muda.
>
> Então, uma forma de vc contornar isso é trabalhar SEMPRE com data UTC
> (universal time).
> Se sua app só roda aqui no Brasil.. blz.. vai dar certo.
>
> Agora, no caso em q uma app rodava em filiais com diferenças de timezone,
e
> q no servidor era preciso salvar duas datas (uma local da filial e outra
> data local do servidor + gmt da filial) foi preciso eu extender meu
> BlazeDS.
> Não é dificil, só acho interessante como pouca gente sabe disso :)
>
> A solução (algoritmo) está descrito aqui:
> http://cookbooks.


adobe.com/post_Date_time_transfer_in_BlazeDS-13114.html
>
> MAS... eu achei horrivel essa ideia de trabalhar com esses getters/setters
> poluindo os objeto VOs... então, criei uma anotação propria (annotation)
> onde eu marcava meus atributos java.util.Date e escrevi um adapter proprio
> extendendo o JavaAdapter do BlazeDS. Nesse ponto eu simplesmente procurava
> pelos campos que tinham a minha anotação e ajustava o TimeZone deles
usando
> a solucao do link acima. Pronto, problema resolvido e reutilizavel tb para
> outros tipos de serialização (como por exemplo, sempre receber Number/int
> com null vindo do flex em vez dos 0 (zeros) que sao serializados por
> default).
>
> Boa sorte.
>
>
> 2009/10/13 Jose Maria de Oliveira <jose.oliveira@

<mailto:jose.oliveira%40dtsconsulting.com>


dtsconsulting.com<jose.oliveira%40dtsconsulting.com>
> >
>
> >
> >
> > Tudo bem Sergio?
> >
> > Deve estar relacionado com o horário de verão que cria automático pelo
> > Windows.
> >
> > E se você usar o GregorianCalendar e forçar a hora para 2 da manhã?
Assim
> > quando diminuir uma hora obterá a data correta.
> >
> > []s,
> >
> > _____
> >

> > <http://www.dtsconsu <http://www.dtsconsulting.com/> lting.com/>
> >
> > José Maria Oliveira
> > Desenvolvedor
> >
> > jose.oliveira@ <mailto:jose.oliveira%40dtsconsulting.com>


dtsconsulting.com <jose.oliveira%40dtsconsulting.com><jose.oliveira%
> 40dtsconsulting.com>
> >
> > Tel.: 55 (11) 4134-9698
> > Fax: 55 (11) 4134-9610
> >
> > _____
> >
> > _____
> >


> +55 (48) 3337 2003
> Rua Pastor Willian Richard Schisler Filho 452 sl 102, 88034-100 Itacorubi
> Florianopolis SC Brasil
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>

[As partes desta mensagem que não continham texto foram removidas]

[As partes desta mensagem que não continham texto foram removidas]


__,_._,___
Reply all
Reply to author
Forward
0 new messages