Estou tendo um problema na hora de mostrar as datas que são armazenadas no BD, elas aparecem todas 1 dia atrás. Então uma data que está no banco como: “2009-05-29” vai ser mostrada como “28 mai 2009”. Muito estranho…
você ja fez um select nessa tabela pra ver de a data esta mesmo com esse volor. Pode ser que o computador onde esta o BD esta com um dia de atrazo.
L
Leonardo3001
Como você gravou essa data no banco?
O grande problema é que você está usando o país França como Locale. O JSF, imbecil como ele é, assume que a data recebida do banco faz parte do TimeZone GMT-0 de Londres, e faz a conversão “apropriada” tirando algumas horas da data.
Não me lembro como esse bug era contornado. Mas você poderia usar um objeto da classe Calendar (ao invés de java.util.Date) setando explicitamente o TimeZone da França nesse objeto.
felipe_gdr
Então caiomacedo, valeu pela dica mas tudo está aqui no meu pc (BD, servidor) e o select mostra a data correta, é a interface que está se enganando por alguma razão.
Eu acabei de mudar o BD de MS SQL para MySQL, e me parece que com MS SQL eu não tinha esse problema… Não sei se o fato de usar MySQL pode influenciar nesse problema…
felipe_gdr
Valeu pela dica Leonardo, mas acredito que não seja esse o problema.
Ele teria que diminuir 18 horas para reduzir um dia da data…
felipe_gdr
Olá!
Consegui finalmente resolver esse problema (que na minha opinião é um bug do jsf!)
Foi só trocar a tag do convertTimeDate do jsf pela do Jboss Seam:
Bizarro. Se eu não estivesse usando Seam minhas datas ainda estariam todas erradas…