Método de pegar hora, minuto, segundo e milésimo

Eu tenho um método que pega a hora atual, porem ele vai até o segundo, eu precisava que ele pegasse o milésimo.
Alguem sabe como?

Segue o método:

 public static String horaAtual() {
        try {

            formato = "hh:mm:ss";
            agora = new java.util.Date();
            SimpleDateFormat formata = new SimpleDateFormat(formato);
            hora = formata.format(agora);

            return hora;
        } catch (Exception e) {
            return ("Não foi possível capturar a hora" + e);
        }
    }

Tentei fazer isso:

formato = "hh:mm:ss:mm"; 

Mas acho que não é a maneira correta.

SimpleDateFormat d =  new SimpleDateFormat("yyyyMMdd-HH:mm:ss.SSS");  
System.out.println(d.format(new Date())); 

Valeu!!!