Нет, ваш код в порядке. Скорее всего, миллисекунда просто не проходит. Попробуйте вместо этого использовать System.nanoTime()
.
РЕДАКТИРОВАТЬ: На самом деле, есть проблема с кодом. Согласно документам TimeUnit.convert
«Преобразования из более мелких в более грубые гранулярности усекаются, поэтому теряют точность», поэтому, если результат меньше 1000, он будет равен 0.
Если вам нужны доли секунды, просто сделайте:
double seconds = result / 1000.0;
nanoTime
все еще может быть полезным, но это может не быть проблемой, если код занимает достаточно много времени.