SimpleDateFormat

Pessoal,

Estou com dificulade pra converter a data no formato que preciso, estou usando o seguinte código:

SimpleDateFormat formatador = new SimpleDateFormat ("dd/MM/yyyy HH:mm:ss");
String dhLogInicialConvertido = formatador.format(dhLogInicial);
String dhLogFinalConvertido = formatador.format(dhLogFinal);

Digito a seguinte data e hora no campo de texto 18/12/2008 17:30:50, mas na conversão, é formatado como 18/12/2008 00:00:00.
Alguém sabe o que estou fazendo de errado?
Acho que o problema é com a hora, pois estava fazendo a mesa coisa só com a data e estava funcionando.
Pesquisei no Javadoc, mas por lá o que digitei está certo.
http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html

O erro que está retornado é o seguinte:

ORA-01830: a imagem do formato da data termina antes de converter a string de entrada inteira

tenta assim:

SimpleDateFormat formatador = new SimpleDateFormat (“dd/MM/yyyy hh:MM:ss”);

olha aí se dá certo e me fala.

o ‘M’ formata mes e o ‘m’ formata minutos
d q tipo sao os objetos dhLogInicial e dhLogFinal?

[quote=Marlon Meneses]o ‘M’ formata mes e o ‘m’ formata minutos
d q tipo sao os objetos dhLogInicial e dhLogFinal?[/quote]

tem razão,
agora, parece que é um erro que o oracle está emitindo né? qual é o tipo da coluna que você está manipulando?

Abraço.

Os objetod dhLogInicial e Final são do tipo Date.
E o campo DH_LOG no Banco é Date tb. Os valores setados no banco estão no formato dd/mm/yyyy hh:mm:ss
A data não tenho problemas, mas não consigo as horas.

tente colocar

String dhLogInicialConvertido = formatador.format(dhLogInicial.getTime()); String dhLogFinalConvertido = formatador.format(dhLogFinal.getTime());

add esse jar na sua aplicaçao…e usa a classe formatador…to anexando o javadoc tb…la tem metodos para tudo isso…

estou incrementando essa classe aos poucos…mas ja resolve seu problema

abelgomes,

Não posso pacotes “externos” no projeto.

Marlon,
Tentando usar sua sugestão, retorna o seguinte erro:
No match was found for metod format(long) in type java.text.SimpleDateFormat

vc quer conveter essa String em date?18/12/2008 17:30:50

Parcialmente resolvido…rs
O problema é que estava pegando como Date, agora está como String e após isso estou tratando para Date.
Já consigo receber o valor certo no método que vai consultar no Banco, mas ainda retornou um erro, só que esse só depois do almoço.

Abçs,
Valeu!!!

explica melhor…esse valor no banco é date ou String?o usuario digita na tela a data com a hora ou vc pega isso na banco como date?

se vc receber um date pode fazer assim

//assim ele retorna uma String nesse formato
formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
formatter.format(new Date());

//#############################
//assim ele retorna um date, passando uma string como data
formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

formatter.parse("18/12/2008 17:23:30");

acho q isso resolve :wink:

[color=green]UM POUCO DE POG, até alguém nos ajudar com algo melhor[/color]

public Calendar converterDtBdParaCalendar(String data)throws Exception,SQLException{ Calendar calendar= null; // fazendo a conversão da data if(!(data.isEmpty())){ // se não vazio ... converter String formato = "dd/MM/yyyy HH:mm:ss"; // padrão inicial: 19 carácteres switch (data.length()) { case 16: // se 16 carácteres: dd/MM/yyyy HH:mm formato = "dd/MM/yyyy HH:mm"; break; case 10: // se 10 carácteres: dd/MM/yyyy formato = "dd/MM/yyyy";break; default:break;} Date date = new SimpleDateFormat(formato).parse(data); calendar = Calendar.getInstance(); calendar.setTime(date); } return calendar; }

Por que desenterrou um tópico de 5 anos sem postar nada que agregue valor a ele?