[Resolvido]Java salvando data com dia atrasado

7 respostas
L

Pessoal, estou com problemas na hora de salvar uma data que esta dentro de um <p:inputMask/>. Toda data que salvo no mysql é salvada com um dia de atraso, o código que uso para a conversão da data é essa:

java.sql.Date data_nascimento=new java.sql.Date(cliente.getData_nascimento().getTime());

7 Respostas

W

Luciano_Lopes:
Pessoal, estou com problemas na hora de salvar uma data que esta dentro de um <p:inputMask/>. Toda data que salvo no mysql é salvada com um dia de atraso, o código que uso para a conversão da data é essa:

java.sql.Date data_nascimento=new java.sql.Date(cliente.getData_nascimento().getTime());


verfique se não é um problema com horário de verão da JVM. imprima uma data qualquer no console:

System.out.println(new Date());
L

Quando voce da um println aparece o que ?

caso seja problema de timezone, mesmo achando que não é pela diferença de um dia, faça o seguinte

TimeZone.setDefault(TimeZone.getTimeZone("America/Sao_Paulo"));
L

Criei esse código para testes e a data ta saindo normal(16/11/2011):

TimeZone.setDefault(TimeZone.getTimeZone("America/Sao_Paulo")); System.out.println(new Date());
A manioulação de datas no jsf é diferente?

L

Não no jsf é igual.
no seu bean vc esta utilizando Date né?

Voce esta usando JPA ou JDBC, o problema deve estar ao passar o parametro via banco se voce estiver utilizando JDBC tente passar o atributo como char

Ex:

new SimpleDateFormat('yyyy-MM-dd').format(new Date())
T

Luciano_Lopes:
Criei esse código para testes e a data ta saindo normal(16/11/2011):

TimeZone.setDefault(TimeZone.getTimeZone("America/Sao_Paulo")); System.out.println(new Date());
A manioulação de datas no jsf é diferente?

no jsf dentro da tag que vc que exibir coloque

<f:convertDateTime pattern="dd/MM/yyy"
				locale="pt_BR"
				timeZone="America/Sao_Paulo"/>
L

Funcionou 100%, só uma duvida agora: porque tenho que citar o timezone e o locate?Não da no mesmo não colocar um dos 2?

F

Da no mesmo nao pq dependendo da configuracao que vc colocar, ele vai avancar ou atrasar (GMT)

Criado 16 de novembro de 2011
Ultima resposta 16 de nov. de 2011
Respostas 7
Participantes 5