SimpleDateFormat

13 respostas
Mavericks

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

13 Respostas

foxpv

tenta assim:

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

olha aí se dá certo e me fala.

Marlon_Meneses

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

foxpv

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

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.

Mavericks

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.

Marlon_Meneses

tente colocar

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

abelgomes

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

Mavericks

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

abelgomes

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

Mavericks

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!!!

abelgomes

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?

abelgomes

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:

P

[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; }

Ataxexe

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

Criado 2 de janeiro de 2009
Ultima resposta 27 de jan. de 2014
Respostas 13
Participantes 6