Problema com mascara "2008-02-02 10:05:02.0"

Pessoal muito bom dia!

Eu estou com um problema pra configurar uma data.

caso:

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			
String data = df.format(hist.getDataHoraTransmissao().toString()); //aqui eu converto o objeto para string. nesta linha já apresenta erro.
Date dataHrTrans = DateHelper.parseDate("yyyy-MM-dd HH:mm:ss", data); //a classe DateHelper tem o método parseDate que converte tipo String para Date
			
hist.setDataHoraTransmissao(dataHrTrans); //seto o valor de DataHoraTransmissao com a nova máscara

getDataHoraTransmissao() me retorna uma data com essa máscara “2008-02-02 10:05:02.0”. Eu n preciso dos milisegundos e não estou conseguindo modificar isso.

Método parseDate

public static Date parseDate(String pattern, String value) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat(pattern);
return (value == null) ? null : formatter.parse(value);
}

Desde já obrigado! :lol:

Eu faço isto, veja se te ajuda

[code]
public static String convertddMMyyyy_HHmmss(Date date) {
return convertDate(“dd/MM/yyyy - HH:mm:ss”, date);
}

public static String convertDate(String format, Date dtConsulta) {
try {
SimpleDateFormat formatter = new SimpleDateFormat(format, new Locale(“pt”, “BR”));
return formatter.format(dtConsulta);

	} catch (Exception e) {
		return null;
	}
}[/code]

Leia direito o javadoc de SimpleDateFormat. Lá ele especifica que o formato para os milissegundos é “S” maiúsculo (não “s” minúsculo, que é para segundos).

Ou seja, algo como:

“yyyy-MM-dd HH:mm:ss.SSS”

Talvez você tenha de completar com 2 zeros à direita, antes de efetuar o “parse”. Não testei aqui para ver se é esse o problema.

thingol bom dia,

cara acho q n entendi eu modofiquei meu código

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS"); //acrescentei os milisegundos na máscara "SS" 
Date teste = hist.getDataHoraTransmissao(); // pego o objeto
			              
String data = df.format(teste); //aqui eu converto o objeto para string. Nessa linha data já tem a mascara correta   
Date dataHrTrans = df.parse(data); // Nessa linha ocorre o cast para data ,so que a mascara n é passada tb.
			              
hist.setDataHoraTransmissao(dataHrTrans);

Ta me retornando essa máscara “Sat Feb 02 08:58:02 GMT-03:00 2008”.
pq?

Vlwss! :lol:

[quote=avsouza]Eu faço isto, veja se te ajuda

[code]
public static String convertddMMyyyy_HHmmss(Date date) {
return convertDate(“dd/MM/yyyy - HH:mm:ss”, date);
}

public static String convertDate(String format, Date dtConsulta) {
try {
SimpleDateFormat formatter = new SimpleDateFormat(format, new Locale(“pt”, “BR”));
return formatter.format(dtConsulta);

	} catch (Exception e) {
		return null;
	}
}[/code][/quote]

Esse metodo q o avsouza usou, nao ti ajudou?
Estava com problema parecido e aqi funfou :smiley:

[]'s

Pois é cara, só q eu já tenho meu método implementado e funcionando, até agora! hehehe. E eu queria ver onde está o erro. Na verdade o meu método faz o mesmo, pelo menos penso isso. Por isso estou pedindo ajuda de vcs, pare resolver esse erro.
Meu método:

public static Date parseDate(String pattern, String value) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat(pattern);
return (value == null) ? null : formatter.parse(value);
}

Estou fazendo assim:

Date teste = hist.getDataHoraTransmissao();     
String data = df.format(teste);
Date dataHrTrans = DateHelper.parseDate("yyyy-MM-dd HH:mm:ss", data);
//recebo como parâmetro a mascara e data

a questão é pq eu recebo como retorno “Sat Feb 02 08:58:02 GMT-03:00 2008”?