with reference to shamim's answer update here is a method that does the task without using any third party library. Just copy the method and use
public static String getDurationTimeStamp(String date) {
String timeDifference = "";
//date formatter as per the coder need
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//parse the string date-ti
// me to Date object
Date startDate = null;
try {
startDate = sdf.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
//end date will be the current system time to calculate the lapse time difference
//if needed, coder can add end date to whatever date
Date endDate = new Date();
System.out.println(startDate);
System.out.println(endDate);
//get the time difference in milliseconds
long duration = endDate.getTime() - startDate.getTime();
//now we calculate the differences in different time units
//this long value will be the total time difference in each unit
//i.e; total difference in seconds, total difference in minutes etc...
long diffInSeconds = TimeUnit.MILLISECONDS.toSeconds(duration);
long diffInMinutes = TimeUnit.MILLISECONDS.toMinutes(duration);
long diffInHours = TimeUnit.MILLISECONDS.toHours(duration);
long diffInDays = TimeUnit.MILLISECONDS.toDays(duration);
//now we create the time stamps depending on the value of each unit that we get
//as we do not have the unit in years,
//we will see if the days difference is more that 365 days, as 365 days = 1 year
if (diffInDays > 365) {
//we get the year in integer not in float
//ex- 791/365 = 2.167 in float but it will be 2 years in int
int year = (int) (diffInDays / 365);
timeDifference = year + " years ago";
System.out.println(year + " years ago");
}
//if days are not enough to create year then get the days
else if (diffInDays > 1) {
timeDifference = diffInDays + " days ago";
System.out.println(diffInDays + " days ago");
}
//if days value<1 then get the hours
else if (diffInHours > 1) {
timeDifference = diffInHours + " hours ago";
System.out.println(diffInHours + " hours ago");
}
//if hours value<1 then get the minutes
else if (diffInMinutes > 1) {
timeDifference = diffInMinutes + " minutes ago";
System.out.println(diffInMinutes + " minutes ago");
}
//if minutes value<1 then get the seconds
else if (diffInSeconds > 1) {
timeDifference = diffInSeconds + " seconds ago";
System.out.println(diffInSeconds + " seconds ago");
}
return timeDifference;
// that's all. Happy Coding :)
}