我知道这已经在这里被问过很多次了,但我一直无法找到任何特定于我的案例的东西。我试图找出当前日期时间和以前的日期时间之间的区别,每个日期时间的格式都是yyyy-MM-dd HH:mm:ss.s. 根据此处给出的答案,我提出了以下代码:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.s");
String earliestRunTime = "2017-12-16 01:30:08.0";
Date currentDate = new Date();
log.info("Current Date: {}", format.format(currentDate));
try {
Date earliestDate = format.parse(earliestRunTime);
long diff = currentDate.getTime() - earliestDate.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) % 30;
long diffMonths = diff / (30 * 24 * 60 * 60 * 1000) % 12;
long diffYears = diff / (12 * 30 * 24 * 60 * 60 * 1000);
return String.format("%s years, %s months, %s days, %s hours, %s minutes, %s seconds",
diffYears, diffMonths, diffDays, diffHours, diffMinutes, diffSeconds);
}
catch (Exception e) {
e.printStackTrace();
return e.getMessage();
}
当我运行代码时,JSON 返回以下结果:
lifetime: "41 years, -1 months, 14 days, 9 hours, 42 minutes, 37 seconds"
我在这里有两个问题:
我在 41 年和负数的计算中哪里出错了?
我有更好的方法吗?我当前的设置不考虑闰年或 365 天一年,我需要将这些考虑在内。
阿波罗的战车
智慧大石
扬帆大鱼
相关分类