Validar data

6 respostas
R

galera estou fazendo uma validação de data, faço a inserção dos dados quando mando listar os dados a data aparece no formato yyyy/MM/dd 00:00:00.0
sendo que quero apenas no formato dd/MM/yyyy nesse formato e sem os 00:00:00.0 que seria HORAS:MINUTOS:SEGUNDOS:MILESIMO DE SEGUNDOS

abaixo esta meu metodo alguém pode me ajudar

public static boolean isValidDate(final String data) throws Exception {
		boolean resp = false;
		try {
			SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
			sdf.setLenient(false);
			java.util.Date d = sdf.parse(data);
			if (data.length() == 10) {
				if (data.indexOf('/') == -1) {
					if (data.indexOf('/', data.indexOf('/')) != -1) {
						resp = true;
					}
				}
			}
		} catch (Exception e) {
			System.out.println("isValidDate" + "ParseException=" + e.getMessage());
		}
		return resp;

	}

6 Respostas

TangZero

Carinha, isso já foi rspondido várias vezes nesse forúm… dá uma pesquisada antes! :wink:

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
dateFormat.format(date);

Uma colher de chá… :wink:

R

Então cara fiz assim mais não deu certo, será que alguém teria um fonte que fizesse o que quero ai pois olhei no forum e na net mais nada ficou claro pra mim formatar a data da forma que quero.

public static boolean isValidDate(final String tempDate)throws Exception {
        boolean result = false;
        if (!isNull(tempDate)) {
            try {
            	SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
            	dateFormat.format(tempDate); 
                result = true;
            } catch (Exception e) {
                System.out.println("isValidDate" + "ParseException=" + e.getMessage());
            }
        }
        return result;
    }
R

po valeu galera mais ainda não sei que estou fazendo que não esta dando certo quando insiro os dados ele esta setando com a data no formato yyyy/MM/dd 00:00:00.0 estou usando metodos que foi postado ai pra mim usar mais devo estar errando em alguma outra coisa.

O

No seu método, é passada uma String com um formato qualquer de data e vc quer transformá-la no formato “dd/MM/yyyy”? Se for isso, lamento lhe irformar, mas não tem como fazer isso. Imagine a String “2008/10/12”. Não tem como saber qual campo é o mês e qual o dia. Para transformação a partir de um formato conhecido você tem que primeiro fazer um parse da String em Date e depois obter uma representação String desta no formato desejado.
Segue um exemplo parra a transformação num formato conhecido, no caso “yyyy/MM/dd HH:mm:ss”:

String s = "2008/07/14 15:12:30"; Date d = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse(s); String data = new SimpleDateFormat("dd/MM/yyyy").format(d);

Kamikaze
Calendar c = Calendar.getInstance();
		Date d = c.getTime();
		
		SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
		String data = formatador.format(d);
		
		String[] dataSplit = data.split("/");
		String dia = dataSplit[0];
		String mes = dataSplit[1];
		String ano = dataSplit[2];
		
		System.out.println("DIA = " + dia);
		System.out.println("MES = " + mes);
		System.out.println("ANO = " + ano);
Kamikaze

Pode ser algo com o Locale, tente algo assim

Calendar c = Calendar.getInstance();
		Date d = c.getTime();
                // Aqui a jogada
		Locale brasil = new Locale ("pt","BR");
		SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy",brasil);


		String data = formatador.format(d);
		
		String[] dataSplit = data.split("/");
		String dia = dataSplit[0];
		String mes = dataSplit[1];
		String ano = dataSplit[2];
		
		System.out.println("DIA = " + dia);
		System.out.println("MES = " + mes);
		System.out.println("ANO = " + ano);
Criado 29 de julho de 2008
Ultima resposta 30 de jul. de 2008
Respostas 6
Participantes 4