Comparação de Strings de Datas

6 respostas
B

Olá pessoal.

Estou com problemas com comparação de Strings e queria uma ajuda.

Queria comparar se uma data (formatada p/ string) é maior que outra. Eis o código:

SimpleDateFormat formato_inicial = new SimpleDateFormat ("dd/MM/yyyy");
Date atual_inicial = new Date();
String data_inicial = formato_inicial.format(atual_inicial);

if (data_inicial <= "01/08/2004")
{ ...

}

Só que esse código dá erro. Como faço tal comparação. Obrigado pela ajuda.

6 Respostas

J

e nao da pra comparar assim, pois uma string nao tem valor numerico
1 eh diferente de “1”
mas a String um = “1” pode ser igual a “1”;
um.equals(“1”) isso eh true entendeu se voce colocar Integer.parseInt() na data vai dar erro de execucao pelos caracteres “/” da sua formatacao, o que voce poderia fazer seria quebrar a string nas partes numericas converte-las para int e entao comparar se eh maior ou menor, criar uma funcao de comparacao de datas seria excelente.

S

acho que a melhor forma de se comparar datas através de Strings é escrever a data de trás pra frente e sem os separadores.

ex:

data1 = 20/10/2003 - 20031020
data2 = 05/03/2004 - 20040305

aí vc só precisa comparar as duas Strings e já te dá o resultado…

sacou ?

B

Obrigado. Mas, como faço tal função?

Nunca tive curiosidade de fazer isso, agora estou penando…

Obrigado.

B

Vou tentar aqui.

Obrigado pela atenção.

S
String dt = "";
SimpleDateFormat formatador = new SimpleDateFormat("yyyyMMdd");

dt = formatador.format(pData);
return dt;
B

Ae Galera, muito obrigado, deu certo. Fiz uma coisa aqui, meio na ‘gambiarra’, mas deu certo, não se vcs aprovam, mas foi meio simples o que eu fiz:

SimpleDateFormat formato_inicial = new SimpleDateFormat ("yyyyMMdd");
Date atual_inicial = new Date();
String data_inicial = formato_inicial.format(atual_inicial);

int data_conv = Integer.parseInt(data_inicial);

if (data_conv <= 20040801)
{ ...

Converti a string em inteiro, com a formatação da data yyyyMMdd e comparei com o valor que eu queria.

Obrigado a todos.

Criado 15 de junho de 2004
Ultima resposta 15 de jun. de 2004
Respostas 6
Participantes 3