[RESOLVIDO]java.time.format.DateTimeParseException: Text 'horaInicio' could not be parsed at index 0

4 respostas Resolvido
java
Luis_Rabelo2004

estou usando LocalTime da nova biblioteca do java 8 e está ocorrendo o seguinte erro:
java.time.format.DateTimeParseException: Text ‘horaInicio’ could not be parsed at index 0

segue minha rotina:

@RequestMapping(value = /adicionar, method = RequestMethod.POST)

public String adicionar(@ModelAttribute(movimentacao) @Valid Movimentacao movimentacao, BindingResult result) {

String horaInicio = (String) result.getFieldValue(horaInicial);

String horaFim = (String) result.getFieldValue(horaFinal);

//o erro ocorre ao executar essa linha abaixo

LocalTime hini  = LocalTime.parse("horaInicio", DateTimeFormatter.ISO_LOCAL_TIME);


	LocalTime hfim  = LocalTime.parse("horaFim", DateTimeFormatter.ISO_LOCAL_TIME);
	Duration total = Duration.between(hini, hfim); 
	
	
	movimentacao.setHoraInicial(hini);
	movimentacao.setHoraFinal(hfim);
	movimentacao.setTotalHoras(total);
	
	if (result.hasErrors()) {
		return "movimentacao.adicionar.tiles";
	}
	
	
	repositorioMovimentacao.save(movimentacao);
	return "redirect:/movimentacao/listar";
}

Qualquer ajuda será bem vinda

4 Respostas

Mike

Você esta tentando converter a palavra horaInicio pra LocalDate, você tem que passar a variavel horaInicio, para isso apenas retire as aspas

LocalTime hini  = LocalTime.parse(horaInicio, DateTimeFormatter.ISO_LOCAL_TIME);
Luis_Rabelo2004

Valeu Mike, deu certo!!

Estou com mais uma duvida, o meu total quando listado ou no relatório está sendo exibido dessa forma:
PT1H10M como fazer para ser exibido da forma normal 01:10 .

Luis

Mike
Solucao aceita

Você pode usar um formatador ou usar os metodos getHour e getMinute

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm");

String horario = objLocalTime.format(dtf);
Mike

Se deu certo, coloca [RESOLVIDO] no nome do tópico e marca a resposta como solução para facilitar a procura por quem estiver com o mesmo problema

Criado 3 de dezembro de 2018
Ultima resposta 3 de dez. de 2018
Respostas 4
Participantes 2