1. 以系统当前日期为起始日期,计算离目标日期还差几天 public String getDateDiff(String enddate) throws ParseException { // 得到系统当前的日期 String today = DateFormat.getDateInstance().format(new Date()); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); // 将起始日期设置为毫秒形式 long start = df.parse(today).getTime(); // 将目标日期设置为毫秒形式 long end = df.parse(enddate).getTime(); // 得到相减后的毫秒,除于1000得到秒,除于60得到分钟,再除于60得到小时,除于24得到天数 return end > start ? String.valueOf((end - start) / (1000 * 60 * 60 * 24)) : String .valueOf((start - end) / (1000 * 60 * 60 * 24)); } 2. 用户给定起始日期,计算离目标日期还差几天 public String getDateDiff(String enddate, String startdate) throws ParseException { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); // 将目标日期设置为毫秒形式 long end = df.parse(enddate).getTime(); // 将起始日期设置为毫秒形式 long start = df.parse(startdate).getTime(); // 得到相减后的毫秒,除于1000得到秒,除于60得到分钟,再除于60得到小时,除于24得到天数 return end > start ? String.valueOf((end - start) / (1000 * 60 * 60 * 24)) : String .valueOf((start - end) / (1000 * 60 * 60 * 24)); } 注:以上为个人在学习Java时的一些笔记,恐有误导之处,不建议作为标准参考。