Ну, вы можете просто разделить на 1 000 000 000:
long elapsedTime = end - start;
double seconds = (double)elapsedTime / 1_000_000_000.0;
Если вы используете TimeUnit
для преобразования, вы получите длинный результат, так что вы потеряете десятичную точность, но сохраните точность целых чисел.