Ajuda em refatoração

0 respostas
E

Pessoal to tentando fazer um “dateParser”
Que teoricamente poderia receber uma data formatada em qualquer formato e a transformaria para tipo date
existe a possibilidade do meu código estar quebrado pois nunca foi testado.

oque acontece é o seguinte pra cada formato de data eu teria q criar um novo “if” oque não é nem um pouco elegante.
pensei em utilizar um enum mas não sei se seria a melhor opção…

segue ideia de cód…

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateParser {	
	@SuppressWarnings("unused")
	private static Date parse(String date) {
		String formatoDeEntrada = null;
		
		if(date.matches("[0-9]{1,2}/[0-9]{1,2}/[0-9]{2,4}"))  formatoDeEntrada = "dd/MM/yyyy";
		if(date.matches("[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}"))  formatoDeEntrada = "yyyy-MM-dd";
		if(date.matches("[0-9]{1,2}/[0-9]{1,2}/[0-9]{2,4} [0-9]{2}:[0-9]{2}:[0-9]{2}"))  formatoDeEntrada = "dd/MM/yyyy kk:MM:ss";
		if(date.matches("[0-9]{4}-[0-9]{1,2}-[0-9]{1,2} [0-9]{2}:[0-9]{2}:[0-9]{2}"))  formatoDeEntrada = "yyyy-MM-dd kk:MM:ss";
		
		Date parsedDate = null;
		
		try {
			parsedDate = new SimpleDateFormat(formatoDeEntrada).parse(date);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return parsedDate;
	}
}
Criado 23 de abril de 2013
Respostas 0
Participantes 1