Java计算精准时间差
适用场景为某个活动倒计时或者定时器
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = new Date();
Thread.sleep(1000);
Date date2 = new Date();
/*这里绕了个弯路,把date转换成String了,这是为了让我自己区分 SimpleDateFormat中format(返回String类型)和parse(返回Date类型)的区别*/
String createTime = f.format(date1);
String nowTime = f.format(date2);
int timeValue = 0;
try {
//
date1 = f.parse(createTime);
date2 = f.parse(nowTime);
//单位为毫秒
long diff = date2.getTime() - date1.getTime();
//时间差,精确到分钟
long diffMinutes = diff / (60 * 1000);
//精确到小时
long diffMinutes = diff / (60 * 60 * 1000);
//精确到天
long diffMinutes = diff / (24 * 60 * 60 * 1000);
} catch (Exception e) {
e.printStackTrace();
}