The problem is with
date.getTime()
It is returning the number of milliseconds since Jan. 1, 1970, midnight GMT.
So to get the number of milliseconds from the current time you would need to use
Date now = new Date();
Long ToCount = date.getTime() - now.getTime();
Also to convert the millisUntilFinished to the relevant format you would want to use
TimeUnit.MILLISECONDS.toDays(millisUntilFinished),
TimeUnit.MILLISECONDS.toHours(millisUntilFinished) -
TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(millisUntilFinished)),
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) -
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millisUntilFinished)),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))