Validar Hora

10 respostas
R

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?

10 Respostas

C

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

R

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

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

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

R

oliveirarenan:

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

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

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

P

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:

R

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:

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

P

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

F

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

F

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)

N

setLenient rlz total

isso devia ser false por padrão…

:slight_smile:

Criado 29 de junho de 2005
Ultima resposta 29 de jun. de 2005
Respostas 10
Participantes 6