关于这个问题有很多重复的问题,我已经查看了大部分问题,并制作了我的代码,但它没有用。
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Calendar date1 = Calendar.getInstance();
Calendar date2 = Calendar.getInstance();
String targetDate = "18/05/2015";
date2.setTime(formatter.parse(targetDate));
long diff = date2.getTimeInMillis() - date1.getTimeInMillis();
long daysPassed = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);
System.out.println("Today is : "+formatter.format(date1.getTime()));
System.out.println("Target date is : "+targetDate);
System.out.println("Difference of days between them is : "+daysPassed);
输出为:
//Today is : 17/05/2015
//Target date is : 18/05/2015
//Difference of days between them is : 0
它可以工作,但是少了一天,我可以添加+1,但如果是同一天那么它会给0,所以那就是......
我应该说它是一个单一的项目,我不能使用外部图书馆或者还没有被教过的东西。
它还会产生一个令人讨厌的解析异常错误,它会持续遍及代码
答案 0 :(得分:3)
如果输出date1和date2的timeInMillis,您将获得2个长值,例如:
1431964800000
1431916207715
和差异是48592285
此值可解释为:
48592285 milliseconds
48592285/1000 = 48592.285 seconds
48592285/1000/60 = 809.87 minutes
48592285/1000/60/60 = 13.50 hours
48592285/1000/60/60/24 = 0.56 days
这就是你指定的两个日期之间得0的原因。