[RESOLVIDO]Consusão com Cannot format given Object as a Date

11 respostas
M

Bom dia pessoal!

Galera, antes de mais nada gostaria de dizer que já procurei bastante coisa sobre este meu problema, mas como eu sou iniciante essa parte de formatação e gravação de datas está sendo um verdadeiro martírio para mim.

A situação é simples e a solução deve ser mais simples ainda, gostaria (se possivel), que alguem me explicasse e me ajudasse a chegar em uma solução definitiva do problema que eu estou enfrentando no momento.

Bem, vamos lá!

Estou usando o MySQL e na minha tabela eu tenho dois campos que recenem o tipo DATE.

Estou usando o primefaces, na minha index.xhtml eu coloquei estes campos da seguinte forma:

<h:outputLabel id="startCalendarLb" value="*Data Inicial:" for="startCalendarID" style="float: right;"/>
				<p:calendar  id="startCalendarID" required="true" pattern="dd/MM/yyyy" requiredMessage="Campo [Data Inicial] é obrigatório."
				value="hotelManagedBean.reserva.dataEntrada"/>
	
				
				<h:outputLabel id="endCalendarLb" value="*Data Final:" for="finalCalendarID" style="float: right;"/>
				<p:calendar  id="finalCalendarID" required="true" pattern="dd/MM/yyyy" requiredMessage="Campo [Data Final] é obrigatório."
				value="hotelManagedBean.reserva.dataSaida"/>

Mas não sei o que está ocorrendo que fica persistindo essa falha:

javax.servlet.ServletException: Cannot format given Object as a Date
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:321)
	filters.JPAFilter.doFilter(JPAFilter.java:27)

Não sei o que mais eu posso fazer, digo se eu já estou usando um componente de calendário do primefaces e estou usando um pattern por que essa falha de conversão fica sendo exibida?

Fico grato a todos pela ajuda, espero entender bem o tema para futuramente ajudar outras pessoas com a mesma duvida.

Abraço a todos!

11 Respostas

R

e qual o tipo dos objetos que você setou no value?

M

[b]Ele acessa direto minha entidade Rodrigo Sasaki como Date

Segue como eu fiz abaixo:[/b]

public class Reserva implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "codReserva") private Integer codReserva; @Column(name = "data_entrada") @Temporal(TemporalType.DATE) private Date dataEntrada; @Column(name = "data_saida") @Temporal(TemporalType.DATE) private Date dataSaida; @Column(name = "pagamento", length = 45) private String pagamento; @Column(name = "status", length = 45) private String status; @JoinColumn(name = "idVisitante", referencedColumnName = "idVisitante") @ManyToOne private Visitante idVisitante; @JoinColumn(name = "idQuarto", referencedColumnName = "idQuarto") @ManyToOne private Quarto idQuarto;

Agradeço sua resposta.

R

java.util.Date ?

M

Sim Rodrigo!

R

Ah, você não setou o value no formato de EL.

M

Nossa Rodrigo… Tem horas que me dá vontade de dar um tiro na minha cabeça!!!

Muito Obrigado pela observação!

Abraço

C

manolo:
Nossa Rodrigo… Tem horas que me dá vontade de dar um tiro na minha cabeça!!!

Muito Obrigado pela observação!

Abraço

Olá Rodrigo Sasaki, e como poderia fazer isso? pode postar um exemplo?

R

Exemplo do que? :slight_smile:

C

Exemplo do que? :)

Ola, estou com o mesmo problema, estou recebendo a Exception: Cannot format given Object as a Date.

Gostaria de saber como seto o meu value no formato de EL.

Não entendi muito bem isso. Poderia me ajudar?

C

[code]
Rodrigo Sasaki, Na minha classe Bean estou formatando a data que esta no banco.

SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy HH:mm");

medicos.setDataConsulta(formato.parse(rs.getString("DATACONSULTA")));

A minha pagina XHTML esta desta forma.


required="true" requiredMessage="Preencha o Campo Data" effect="slideDown" id="dataCons" size="18"
style="min-width:100px; max-width:200px; font-size:11px;"/>

Varei a noite tentando resolver este problema e minha exception mudou, agora estou recebendo o seguinte erro. Unparseable date: "2013-01-11 05:00:00.0"

[code]

R

O seu já está no formato de EL que é assim: #{}

Verifique se a data que você recebe é compatível com o formato que você especifica, e verifique também se o problema de conversão é na hora de montar o objeto Date, ou na hora de mostrá-lo no Calendar

Criado 28 de novembro de 2012
Ultima resposta 1 de dez. de 2013
Respostas 11
Participantes 3