Il modo più idiomatico per stampare una differenza di tempo in Java?

Conosco la differenza di tempo di stampa in millisecondi:

long time = System.currentTimeMillis(); //do something that takes some time... long completedIn = System.currentTimeMillis() - time; 

Ma, c’è un modo carino di stampare un tempo completo in un formato specificato (es .: HH: MM: SS) usando Apache Commons o anche gli oggetti Date / Time dell’API della piattaforma temuta? In altre parole, qual è il modo più breve, semplice e senza senso per scrivere un formato temporale derivato da millisecondi in Java?