Я решил свою проблему, я выкладываю здесь ответ для информации других людей.Я создал метод, который будет вычислять разницу в днях, часах, минутах и секундах вместе с таймером.
Метод расчета разницы в датах:
public void checkingCondition(){
if(ParseUser.getCurrentUser()!=null && ParseUser.getCurrentUser().has("scanTime")){
final Date scanDateTime = ParseUser.getCurrentUser().getDate("scanTime");
Date now = new Date(System.currentTimeMillis());
try {
long diff = now.getTime() - scanDateTime.getTime();
long diffSeconds = diff / 1000 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000) % 24;
long diffDays = diff / (24 * 60 * 60 * 1000);
System.out.print(diffDays + " days, ");
System.out.print(diffHours + " hours, ");
System.out.print(diffMinutes + " minutes, ");
System.out.print(diffSeconds + " seconds.");
if(diffDays == 0){
String hours = "", minutes = "", seconds = "";
if(diffHours < 10){
hours = "0"+diffHours;
}else{
hours = ""+diffHours;
}
if(diffMinutes < 10){
minutes = "0"+diffMinutes;
}else{
minutes = ""+diffMinutes;
}
if(diffSeconds < 10){
seconds = "0"+diffSeconds;
}else{
seconds = ""+diffSeconds;
}
txtTimer.setText(hours+":"+minutes+":"+seconds);
}else{
String hours = "", minutes = "", seconds = "";
if(diffHours < 10){
hours = "0"+diffHours;
}else{
hours = ""+diffHours;
}
if(diffMinutes < 10){
minutes = "0"+diffMinutes;
}else{
minutes = ""+diffMinutes;
}
if(diffSeconds < 10){
seconds = "0"+diffSeconds;
}else{
seconds = ""+diffSeconds;
}
txtTimer.setText(diffDays+"D "+hours+":"+minutes+":"+seconds);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Метод обработчика для таймера:
try {
final Handler timerHandler = new Handler();
updater = new Runnable() {
@Override
public void run() {
try {
checkingCondition();
} catch (Exception exp) {
exp.printStackTrace();
}
timerHandler.postDelayed(updater,500);
}
};
timerHandler.post(updater);
} catch (Exception exp) {
exp.printStackTrace();
}