计算两个日期之间的天数错误输出
Calculating days between two dates wrong output
关于这个问题有很多重复的问题,我已经浏览了其中的大部分并且必须编写我的代码,但是它没有用。
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,所以就是...
我应该说这是一个 uni 项目,我不能使用外部库或尚未教授的东西。
它还给出了一个烦人的解析异常错误,该错误一直遍及整个代码
如果输出date1和date2的timeInMillis,会得到2个long值,例如:
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
这就是您在指定的 2 个日期之间得到 0 的原因。
关于这个问题有很多重复的问题,我已经浏览了其中的大部分并且必须编写我的代码,但是它没有用。
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,所以就是...
我应该说这是一个 uni 项目,我不能使用外部库或尚未教授的东西。
它还给出了一个烦人的解析异常错误,该错误一直遍及整个代码
如果输出date1和date2的timeInMillis,会得到2个long值,例如:
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
这就是您在指定的 2 个日期之间得到 0 的原因。