wbdsjunior 16 de nov. de 2011
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 16 de nov. de 2011 1 like
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 16 de nov. de 2011
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 16 de nov. de 2011
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 16 de nov. de 2011
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 16 de nov. de 2011
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?