Erro ao Converter String para Calendar

7 respostas
AlanHoinacki

Eaw Pessoal!

Estou aprendendo a programar e travei num probleminha.

Tento converter uma String com uma data para o formato Calendar no seguinte cógigo:

String dataTexto = request.getParameter("data");
		Calendar dataDefesa = null;
		
		//Convertendo a Data
		try {
			Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataTexto);
			dataDefesa = Calendar.getInstance();
			dataDefesa.setTime(date);

			
			
		} catch (ParseException e) {
			out.println("Erro na conversão da Data!");
			return; // Para a execução do Metodo
		}

No entanto me deparo com o seguinte erro:

SEVERE: Servlet.service() for servlet [servletAdicionaTcc] in context with path [/biblioteca] threw exception [Servlet execution threw an exception] with root cause
java.lang.Error: Unresolved compilation problem:
Unhandled exception type ParseException

at biblioteca.servlet.AdicionaTccServlet.service(AdicionaTccServlet.java:37)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:279)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)

Se puderem me ajudar, agradeço!!

7 Respostas

mauricioadl

cara, acho q o erro nao eh de conversao. tem outra coisa q esta gerando o erro.

AlanHoinacki

Estou aprendendo a programar para web.
O Eclipse aponta um erro nesta linha:

Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataTexto);

Acho que tem alguma relação com o que está vindo em “dataTexto”, mas sendo ele uma string
e como o erro acontece durante a compilação, antes de executar, não sei porque dá o erro…

nel

AlanHoinacki:
Estou aprendendo a programar para web.
O Eclipse aponta um erro nesta linha:

Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataTexto);

Acho que tem alguma relação com o que está vindo em “dataTexto”, mas sendo ele uma string
e como o erro acontece durante a compilação, antes de executar, não sei porque dá o erro…

Oi!

Qual o contéudo da variavél dataTexto. Pode estar ligada ao respectivo conteúdo.
Se a data não estiver exatamente no formato “dd/MM/yyyy” vai ocorrer a respectiva exceção.

Abraços.

AlanHoinacki

A data é capturada por um input normal em html:

Data da Defesa: <input type="text" name="data"/><br/>

E buscada por uma request e armazenado em uma string:

ServletRequest request

String dataTexto = request.getParameter("data");
nel

Sim, isso ficou bem claro.
Me refiro a imprimir o contéudo da variavél dataTexto afim de se obter o conteúdo da String.

System.out.println("Data: " + dataTexto);

Sem sabermos o conteúdo dessa String, é dificíl prever o que está ocorrendo, entende? :smiley:

AlanHoinacki

Entendo o que você quer dizer. O valor dela nesse ponto ainda é null, porque ele ainda não foi executado e nada foi inserido via html.

nel

Ai é obvio que vai gerar exceção.
Deves tratar a String antes de usa-la. Verificar se não é nula ou vazia e depois tentar a conversão.

Abraços.

Criado 19 de agosto de 2011
Ultima resposta 22 de ago. de 2011
Respostas 7
Participantes 3