Conversão de Data

11 respostas
J

Boa tarde…

estou com problema em conversão de data, tentei várias formas:

Desde já, agradeço!


11 Respostas

T

us[1] é uma String?

Se for, use SimpleDateFormat.parse - não se esqueça, cast não faz conversão (exceto no caso de tipos primitivos para tipos primitivos). Em particular, (Date) str, onde str é uma string, não é possível.

J

é um vetor de string

mas não funcionou!

Thiago_Luis

Olá, tudo bom?

Posta a imagem do erro que vc fez com o SimpleDateFormat.parse, pois tem que funcionar.
Deu erro em tempo de execução??

Abraço

J

Isso, em tempo de execução!


Thiago_Luis

Tenta com /
2003/01/01

J

mas o traço - foi como o oracle definiu, e estou lendo de um arquivo de texto =/

Thiago_Luis

Cria um outro SimpleDateFormat mas com a máscara (“yyyy-MM-dd”).
daí, na hora de dar o pst.setDate(), vc faz um format com essa máscara:

SimpleDateFormat sdfSQL = new SimpleDateFormat("yyyy-MM-dd"); //procede com os códigos até o pst.SetDate() pst.setDate(3,sdfSQL.format(data));
Qua daí ele já insere no padrão do banco ‘2003-01-01’.
É assim tbm com oracle né?
Pois eu não conheço :oops:

Abraço

Thiago_Luis

Thiago Luis:
Cria um outro SimpleDateFormat mas com a máscara (“yyyy-MM-dd”).
daí, na hora de dar o pst.setDate(), vc faz um format com essa máscara:

SimpleDateFormat sdfSQL = new SimpleDateFormat("yyyy-MM-dd"); //procede com os códigos até o pst.SetDate() pst.setDate(3,sdfSQL.format(data));
Qua daí ele já insere no padrão do banco ‘2003-01-01’.
É assim tbm com oracle né?
Pois eu não conheço :oops:

Abraço


NOOOOOSSSSSAAAAA :shock:
Esquece o que eu disse, não leva nem na brincadeira, só falei bobagem :lol:

Como que está a data no seu banco. Assim (1998-02-05)?
E como que está a String que vc quer inserir. Assim (2003-01-01)?
Pq eu testei de algumas formas parsear desse jeito e não foi.
Só parseou com a String deste jeito (01/01/2003), se não dá aquele erro que deu com vc.
De outro jeito não sei como…

J

Boom deixa eu explicar…

estou fazendo o seguinte, limpando toda base de dados e salvando num arquivo, agora a base vazia, preciso importar o arquivo para a base, então estou lendo linha por linha e importando.

Essa data, estava do mesmo formato no banco. =)
O que é mais estranho ainda, porque se estava dessa forma, deveria importar =/

Thiago_Luis

jessicabnu:
Boom deixa eu explicar…

estou fazendo o seguinte, limpando toda base de dados e salvando num arquivo, agora a base vazia, preciso importar o arquivo para a base, então estou lendo linha por linha e importando.

Essa data, estava do mesmo formato no banco. =)

O que é mais estranho ainda, porque se estava dessa forma, deveria importar =/</blockquote>

No seu .TXT as datas estão todas no padão yyyy-MM-dd certo?

E se vc fizesse o seguinte:

muda a mascara do SimpleDateFormat para (dd/MM/yyyy);

pega o vetor us[1] e faz:
String aux = format.format(us[1]);

Agora, vc faz um parse no java.sql.Date:

java.sql.Date data = new java.sql.Date(format.parse(aux).getTime());

Eu não tenho certeza, mas acho que o parse só “parseia” quando digitamos no formato dd/MM/yyyy.
Tanto que eu fiz um teste digitando a data no formato yyyy/MM/dd (com / ao invés de traço) e deu uma data totalmente diferente.
É uma gambizinhha, mas pode ajudar.

Abraço

J

Já resolvi usando outro método.

Obrigada!

Criado 12 de junho de 2009
Ultima resposta 15 de jun. de 2009
Respostas 11
Participantes 3