Estou com um problema de um livro que estou estudando de uma aplicação web usando jsf e hibernate.
Para resumir a aplicação funciona corretamente, que é gravar alguns dados do formulário jsf para o banco de dados mysql:
Nome, email, data nascimento, celular, login e senha…
O problema é que ao gravar no banco, o que acontece, por exemplo quando digito 10/01/2011 ele grava 09/01/2011!!!
Está, gravando com diferença de um dia a menos do que digitei…
Já tive um problema parecido, mas debugando, percebi que quem mandava a data com um dia a menos (D-1) era o componente de data do ICEFaces. Você esta usando JSF com qual implementação? RichFaces, ICEFaces ou PrimeFaces?
Já tive este problema uma vez, e era relacionado ao Locale da aplicação. O Locale está relacionado ao time zone (fuso) configurado , se o seu dado na coluna do banco está configurado como TIMESTAMP ou DATETIME, ele leva em consideração a hora também. Se a o banco estiver configurado com um timezone diferente, ele tenta converter o horário e pode ser que a data mude. Verifique as configurações de Locale da sua aplicação (em algumas distribuições de Linux o default é en_US, e o java pega a configuração do sist. operacional)
Já tive um problema parecido, mas debugando, percebi que quem mandava a data com um dia a menos (D-1) era o componente de data do ICEFaces. Você esta usando JSF com qual implementação? RichFaces, ICEFaces ou PrimeFaces?
Abraços!
[/quote]
Olha eu ainda não cheguei na parte destes frameworks, mas ao que parece o livro usará o PrimeFaces…
amigo vc deve estar fazendo uma aplicao web, ne?
entao sua aplicacao esta rodando em um servidor instalado na sua propria maquina certo?
como servidor esta na sua maquina e vc esta fazendo uma consulta no mysql ele pega a data do seu computador…ja verificou a data do seu pc ?
[quote=levita104]amigo vc deve estar fazendo uma aplicao web, ne?
entao sua aplicacao esta rodando em um servidor instalado na sua propria maquina certo?
como servidor esta na sua maquina e vc esta fazendo uma consulta no mysql ele pega a data do seu computador…ja verificou a data do seu pc ?[/quote]
Fala amigão! Boa tarde! Não tinha olhado não, mas acabei de olhar e está ok. A data está correta…
Era da aplicação! Creio que por causa do horario de verão ele estava calculando de forma errada e como disse acima apenas acrescenteia a aplicação o locale e o timezone na tag desta forma: <f:convertDateTime type=“date” pattern=“dd/MM/yyyy” dateStyle="medium locale=“pt_BR” timeZone=“GMT-3”/>