[Resolvido]Java salvando data com dia atrasado

7 respostas
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());

7 Respostas

wbdsjunior

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());
leonardobhbr

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"));
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?

leonardobhbr

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())
tiago.vt

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"/>
Luciano_Lopes

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?

fabim

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