Estou com um problema com o Calendar do PrimeFaces e consegui utiliza-lo e configurar ele para o idioma português, mas, o problema é que escolho a data para salvar 21/04/2017 ai ele salva a data 20/04/2017, ou seja, sempre um dia a menos.
Beleza achava que estava resolvido, mas agora percebi que se eu abri o cadastro novamente e fazer alguma alteração e mesmo não mudando a data. Ele joga a data um dia pra frente ficando 22/04/2017 - 23/04/2017.
Cara posta o código ai do componente calendar para a gente ver… Tem algum motivo especial em você estar usando o tipo Calendar? Talvez o tipo Date do java.util pudesse ser melhor.
A
alexpassos
Olá
Qual código você fala? Porque eu postei o código ai onde recupero do formulário a data e acrescento um dia.
Como ficaria esse código ai com o Date do java.util?
M
Matheusssbraga
Alex, falo o código da view mesmo onde você usa o p:calendar…
O código com o Date ficaria assim:
Date data = new Date(); cliente.setDatacad(data); * Lembrar de mudar o tipo do atributo “datacad” na classe Cliente também…
A
alexpassos1 like
Olá
Estou usando assim:
<p:calendarid="data"styleClass="txtdata"mask="99/99/9999"maxlength="10"navigator="true"yearRange="c-99:c+10"value="#{bancolancamentosBean.vData}"required="true"requiredMessage="Digite a data do lançamento"size="8"locale="pt_BR"pattern="dd/MM/yyyy"><f:convertDateTimetype="date"pattern="dd/MM/yyyy"/></p:calendar>
E no Bean na hora de salvar assim:
publicvoidfnSalvar(){try{Calendarcalendar=Calendar.getInstance();calendar.setTime(vData);calendar.add(Calendar.DATE,1);bancolancamento.setData(calendar.getTime());bancolancamento.setValor(vValor);bancolancamento.setIdempresa(clsIdEmpresa.getEmpresa());bancolancamentosDAO.merge(bancolancamento);fnNovo();fnListar();fnMensagem("Operação realizada com sucesso","info");}catch(RuntimeExceptionerro){fnMensagem("Erro ao salvar lançamento "+erro,"erro");erro.printStackTrace();}}
Coloquei esse código de adicionar 1 dia do calendar por uma dica de resolver o problema, porque se retiro sempre salva com 1 dia anterior. Se coloco no campo 25/04/2017 ele salva 24/04/2017.
Onde peguei essa dica disse que é por causa do fuso horário.
R
Rodrigomarden
Ao meu ver, não há nada de errado no código, se atente a data que está inserida no seu servidor local, pode ser que ela esteja errada e isso está refletindo no seu sistema.
Outra forma seria você usar a data direto no código SQL, com o current_date() ou adicionar essa premissa no seu BD
A
alexpassos
Ainda não publiquei o sistema, estou rodando na minha máquina com Tomcat.
Essas outras opções que você falou não entendi.
Em relação ao código, o problema só acontece quando preciso fazer uma alteração no registro. Ele esta sempre adicionando 1 dia a data.