O SimpleDateFormat não funciona

4 respostas
Rhuan_Stajner

Olá amigos do GUJ! Estou com um probleminha aqui com o SimpleDateFormat:

System.out.print("Digite  a data de nascimento(dd/mm/yyyy): ");
				String strdata = Util.readStr();
				DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
				Date data = null;
				try {
					data = sdf.parse(strdata);
				} catch (ParseException e) {
					System.out.println("Formato inválido para data!!!");
					System.out.println("Encerrando a aplicação!!\n");
					System.exit(0);
				}

mesmo assim o programa aceita quando eu digito, por exemplo, 12/10/99.
não entendo…

4 Respostas

Jairo_Junior

Rhuan,
para o método parse isso não é motivo de erro, no seu caso quando vc está utilizando um pattern (“dd/MM/yyyy”) e tenta inserir a seguinte data: 29/06/99 isso é diferente de 29/06/1999.

Acho melhor vc utilizar o pattern (“dd/MM/yy”), que caso vc digite 29/06/99 ou 29/06/1999, para os dois casos isso é 29/06/1999.

Qualquer coisa dah uma olhada na documentação:
http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html#year

[]`s

Rhuan_Stajner

Beleza Jairo! não sabia disso! vou só ver agora se na hora de inserir no banco vai dar certo.
de qualquer forma, muito obrigado mesmo!! flw

S

Jairo

Estou com problemas em entender o funcionamento do SimpleDateFormat tbm, e fiquei com uma duvida agora.
Nesse caso… a linha

data = sdf.parse(strdata);

Não vai tentar inserir uma String dentro de um Date?

Jairo_Junior

não, o método parse vai converte a data que está no formato String (respeitando o pattern do constructor), para uma data no formato Date.

Tenta executar colocando isso:

String strdata = "29/06/2008";

[]`s

Criado 29 de junho de 2008
Ultima resposta 29 de jun. de 2008
Respostas 4
Participantes 3