Java.text.ParseException

Olá,

Tenho um arquivo txt com o seguinte layout:

02/01/2007;6624;354;20,00;380,00
03/01/2007;6625;148;6,00;114,00
03/01/2007;6626;344;8,00;152,00

Eu consegui fazer a importação para o Firebird. Porém percebi uma inconsistência ao fazer as selects, devido ao formato mm/dd/yyyy que é usado no firebird.

Então fiz o seguinte:

[code] SimpleDateFormat sdfIn = new SimpleDateFormat(“dd/mm/yyyy”);
SimpleDateFormat sdfOut = new SimpleDateFormat(“mm/dd/yyyy”);

    java.util.Date dtCad = sdfIn.parse(campos[0]); // vem do split, readline()

    importVO.setData(sdfOut.format(dtCad)); // setData no VO é uma String[/code]

Assim ficaria de acordo com o nosso padrão de datas.

Porém ocorre o seguinte erro:

java.text.ParseException: Unparseable date: “02/01/2007”

Aqui quando eu colo não aparece, mas no netbeans mostra um ponto entre a aspas e o 02, tipo assim “ '02/01/2007”. Deve ser algum caracter que não aparece no txt, mas que o netbeans “enxerga” e não consegue converter.

Este erro está ocorrendo por usar incorretamente o SimpleDateFormat ou é o txt mesmo?

Desde já muito obrigado, :slight_smile:
Rogers

a) Você precisa usar “dd/MM/yyyy”, não “dd/mm/yyyy” (MM = mês, mm = minuto)

b) Limpe primeiro o dado, antes de passá-lo para SimpleDateFormat.parse. Como você está lendo o arquivo? Se o arquivo-texto foi gerado no Windows e lido no Linux (por exemplo), é aconselhável efetuar um “trim” na linha original, para remover eventuais caracteres de controle (como o “\r” que pode ter sobrado do Windows).

Realmente era o txt com problema, pois mesmo sendo de Win para Win, e usando o trim e MM o erro permanecia.

Mudei a codificação do txt para ANSI, pois antes estava em UTF-8, e funcionou normalmente.

Obrigado!