Arredondamento de minutos

Olá pessoal,

Eu leio uma data de um arquivo texto, com a hora. Preciso que a hora seja colocada em uma página exatamente como está no arquivo (fácil, isso eu já tenho), mas para fazer cálculos, eu preciso arredondar os minutos sempre de 30 em 30.

SimpleDateFormat sdf = new SimpleDateFormat("HHmmddMMyy"); Date date = sdf.parse(line.substring(5, 15)); System.out.println(date);

Agora, a grande pergunta é… Como eu faço para, manter os valores originais, e ter valores arredondados para cálculo?
A melhor hora para arredondar é na leitura dos dados, ou na hora dos cálculos?

O arredondamento é assim:

long hora; hora=objData.getTime(); int h, m; String str =new String(); str=hora; String t[] = str.split(":"); h=Integer.parseInt(t[0]); m=Integer.parseInt(t[1]); if (m<=15){ m=0; } else if (m<=45){ m=30; } else{ m=0; h++; }

  1. Como eu faço para pegar a hora? É melhor criar um SimpleDateFormat na hora da leitura, só para a hora? Durante o cálculo, quando eu chamo uma data, eu sempre uso o .getTime(), mas ele retorna em milissegundos, não é?

  2. Como eu faço para devolver o resultado no formato de hora?

Agradeço qualquer ajuda.

De uma pesquisada na classe Calendar…

Na minha opinião é a melhor para trabalhar com data/hora…

E, usando Calendar, eu consigo arredondar os minutos da forma como preciso?

Se for possível, aí sim valerá a pena eu alterar.

obrigado.