Trabalhando com Datas

Pessoal estou montando um cadastro onde preciso trabalhar com horas, informando hora_inicial e hora_final, criei esses dois campos no banco de dados com o tipo Date pois vou precisar efetuar uma subtração( hora_final - hora_inicial). Fiz o mapeamento usando Hibernate Annotation, usei o tipo java.util.Date para representar esses dois campos.
A primeira duvida seria como formatar esse campo usando JSTL para o formato de hh:mm, a outra seria como fazer para efetuar a subtração.

Grato.

Bom, para aprender a formatar datas com o JSTL, vc pode usar o bom e velho google:

http://www.google.com.br/search?q=jstl+formatting+date

Para subtrair as datas, você pode pegar o valor delas em milissegundos (atraves do metodo getTime), e subtrair.

Assim você terá a diferença entre as datas em milissegundos. Caso queira em dias, horas, etc é só fazer as divisoes certas.