获取指定日期到到当前时间的时长
解析指定日期到当前时间的时长
public static String getDurationToNow(String dateStr) {
Date date = null;
try {
date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateStr);
long duration = System.currentTimeMillis() - date.getTime();
long days = duration / (24 * 60 * 60 * 1000);
duration = duration % (24 * 60 * 60 * 1000);
long hours = duration / (60 * 60 * 1000);
duration = duration % (60 * 60 * 1000);
long minute = duration / (60 * 1000);
if (0 == days && 0 == hours && 0 == minute) {
if (duration % (60 * 1000) > 0) {
minute = 1;
}
}
return String.format("%d天%d小时%d分钟", days, hours, minute);
} catch (ParseException e) {
e.printStackTrace();
}
return String.format("%d天%d小时%d分钟", 0, 0, 0);
}
//第二种方法
@RequiresApi(api = Build.VERSION_CODES.O)
public static String getDurationToNowO(String date) {
LocalDateTime localDateTime2 = LocalDateTime.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
Duration duration = Duration.between(localDateTime2, LocalDateTime.now());
long days = duration.toDays();
duration = duration.minusDays(days);
long hours = duration.toHours();
duration = duration.minusHours(hours);
long minute = duration.toMinutes();
return String.format("%d天%d小时%d分钟", days, hours, minute);
}