System.currentTimeMillis()очевидно, є найбільш ефективною, оскільки вона навіть не створює об'єкт, але new Date()насправді є лише тонкою обгорткою довгою, тому вона не відстає. Calendarз іншого боку, є відносно повільним і дуже складним, оскільки має справу зі значно складністю та всіма дивацтвами, притаманними датам та часам (високосні роки, економія денного світла, часові пояси тощо).
Як правило, це гарна ідея мати справу лише з довгими часовими позначками або Dateоб'єктами у вашій програмі та використовувати їх лише Calendarтоді, коли вам потрібно виконати обчислення дати / часу або відформатувати дати їх відображення користувачеві. Якщо вам доведеться зробити багато цього, використання Joda Time - це, мабуть, хороша ідея, для більш чистого інтерфейсу та підвищення продуктивності.