Re:Milisegundos de uma data

ACho que isso ai não retorna os milissegundos do momento atual (como no formato h:m:s:ms), mas sim o total de milissegundos do momento atual, como se vc fizesse (h * 3600 seg * 1000 ms) + (60 s * 1000 ms) + (s * 1000) + ms
Entendeu?! Por isso usa long, porque isso da um numero bemm grande…
Se for fazer assim teria q bolar um esquema subtrair valores de modo a obter só os milissegundos decorridos a partir do segundo atual…

Preciso retornar os milisegundos de uma data em Long. Gostaria de saber se o código está correto. Realizei testes, mas não sei se está certo.

public void setData(int ano, int mes, int dia) {
     GregorianCalendar cal = new GregorianCalendar(ano, mes, dia);
     long t = cal.getTimeInMillis();
}

Alguém poderia me ajudar?