Cálculo de horas com o oracle.jbo.domain.date

Pessoal, bom dia!

Estou com um problema ao fazer um cálculo de horas utilizando oracle.jbo.domain.date. Veja abaixo o código:

 [code]
    //GetValues - Horas
    Date horaInicial = (Date)totline.getAllRowsInRange()[0].getAttribute("TimHoraInicial");
    Date horaFinal = (Date)totline.getAllRowsInRange()[0].getAttribute("TimHoraFinal");
    
    //long
    long hInicial = horaInicial.getValue().getTime();
    long hFinal = horaFinal.getValue().getTime();
    
    //Fazendo cálculo
    long totalHorasLine = hFinal - hInicial;
    
    //Tranformando para Date novamente.      
    Date difDate = new Date(new java.sql.Timestamp(totalHorasLine)); 
 [/code]

No final eu não tenho um resultado correto, ele me retorna uma data inválida, veja:

 [code]
  //Horas
  Date horaInicial = 2009-03-19 08:00:00.0
  Date horaFinal   = 2009-03-19 11:07:37.0
  
  //Long
  1237460400000
  1237471657000

  //Long - Resultado
  11257000

  //Date - Resultado
  1970-01-01 00:07:37.0 - ///ERRADO


  //----------------------------------------------------------------------------------------------------------
  //Eu preciso que o resultado seja a diferença entre (horaFinal - horaInicial), e neste
  //caso nao esta funcionando! ESTÁ DANDO UMA DIFERENCA DE 3 HORAS
  //-----------------------------------------------------------------------------------------------------------

 [/code]

Aguardo!

Uma diferença entre dois instantes em ms não pode ser convertida para um java.util.Date, para você conseguir o número de horas. Em vez disso, você tem de fazer contas (1 hora = 60 minutos = 3600 segundos etc.), ou então usar algo como o Joda-Time e entender o conceito de Period e Interval.