Validar Hora

Pessoal para validar se uma data é válida ou não eu faço assim:

public boolean validarDt(){ boolean dt = true; Pattern p = Pattern.compile("^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"); Matcher m = p.matcher(jFdt.getText()); if (!m.find()) { dt = false; } return dt; }

Teria algo par mim validar uma hora assim?

Nao era MUUUUUUUUUUUITO mais facil usar um SimpleDateFormat.parse() ao inves de usar essa regex monstruosa? :?

Cv só que eu quero por exemplo tipo isso 01/13/2005 não é uma data válida não só o formato e tipo quero o mesmo para hora tipo 13:75 não é uma hora válida

String data = new SimpleDateFormat("dd/MM/yyyy").format(new Date());

:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:

[quote=oliveirarenan]

String data = new SimpleDateFormat("dd/MM/yyyy").format(new Date());

:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: [/quote]

Cara como eu já falei antes não é o formato que eu quero e sim a data e a hora no exemplo que eu dei não exite dia 1 do mes 13

Data:

public static void main(String[] args) throws ParseException { Date data = new SimpleDateFormat("dd/MM/yyyy").parse("05/10/1985"); System.out.println(data); }

Hora:

public static void main(String[] args) throws ParseException { Date data = new SimpleDateFormat("HH:mm").parse("16:38"); System.out.println(data); }

E por favor,tente não postar códigos tão longos… :roll:

[quote=diego_sl]Data:

public static void main(String[] args) throws ParseException { Date data = new SimpleDateFormat("dd/MM/yyyy").parse("05/10/1985"); System.out.println(data); }

Hora:

public static void main(String[] args) throws ParseException { Date data = new SimpleDateFormat("HH:mm").parse("16:38"); System.out.println(data); }

E por favor,tente não postar códigos tão longos… :roll: [/quote]

Puts gente o q quero não é formatar o a hora e sim saber se a hora é valida tipo 25:00 não é uma data válida… 13:65 tb não

Se não for válida ele vai lançar uma ParseException :wink:

estranho mesmo. acho q esse código era pra lançar ParseException mesmo. aqui também não funcionou (nenhuma exception). :evil:

1.5.0

háaaaa !!

Desse jeito ele lança exception.

    SimpleDateFormat sdfData = new SimpleDateFormat("dd/MM/yyyy");
    SimpleDateFormat sdfHora = new SimpleDateFormat("HH:mm");
    sdfData.setLenient(false);
    sdfHora.setLenient(false);

http://java.sun.com/j2se/1.5.0/docs/api/java/text/DateFormat.html#parse(java.lang.String,%20java.text.ParsePosition)

setLenient rlz total

isso devia ser false por padrão…

:slight_smile: