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]
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]
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]
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]
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>]
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]