Calendar em Timestamp

Boa tarde galera

A minha dúvida é a seguinte…

Estou montando um Calendar e depois retorno um Timestamp porém, o campo hora não está no formato de 24 h e o campo minuto não corresponde ao valor passado.

O que está errado?


Calendar calendardata = Calendar.getInstance();
		Calendar calendarhora = Calendar.getInstance();
		Calendar calendarfinal = Calendar.getInstance();
		
		calendardata.setTime(data);
		calendarhora.setTimeInMillis(hora.getTime());
		
		System.out.println(calendardata.get(Calendar.YEAR));
		System.out.println(calendardata.get(Calendar.MONTH));
		System.out.println(calendardata.get(Calendar.DAY_OF_MONTH));
		
		System.out.println(calendarhora.get(Calendar.HOUR_OF_DAY));
		System.out.println(calendarhora.get(Calendar.MINUTE));
		System.out.println(calendarhora.get(Calendar.SECOND));
		
		
		calendarfinal.set(Calendar.YEAR, calendardata.get(Calendar.YEAR));
		calendarfinal.set(Calendar.MONTH, calendardata.get(Calendar.MONTH));
		calendarfinal.set(Calendar.DAY_OF_MONTH, calendardata.get(Calendar.DAY_OF_MONTH));
		
		calendarfinal.set(Calendar.HOUR_OF_DAY, calendarhora.get(Calendar.HOUR_OF_DAY));
		calendarfinal.set(Calendar.MINUTE, calendarhora.get(Calendar.MINUTE));
		calendarfinal.set(Calendar.SECOND, 0);
		calendarfinal.set(Calendar.MILLISECOND, 0);
		
		return new Timestamp(calendarfinal.getTimeInMillis());

Agradeço a ajuda.

donatinhoi

Só explica uma coisa

calendardata.setTime(data);  
calendarhora.setTimeInMillis(hora.getTime());

O que são data e hora? Que tipo são? Como são instanciados?

Abraços

Como vc sabe que nao esta no formato?!

O objeto Timestamp não configura formato, ele tem um toString que mostra da forma dele, para mostrar no formato que vc quer, tem que usar DateFormat

		Calendar cal = Calendar.getInstance();
		Timestamp ts = new Timestamp(cal.getTimeInMillis());
		DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm");
		System.out.println(df.format(ts));

http://java.sun.com/j2se/1.5.0/docs/api/java/text/DateFormat.html