在此页面上,我们将计算两个日期之间的差异。有时我们的项目需要处理计算或更新日期差异的任何页面。
在这里,我们将讨论一个简单的场景,我们需要计算两个日期之间的差异。假设检索重新编码表单表并将其显示在 JSP 上,并以表格形式出现并具有日期列。标记整个表和当前日期列差异大于 7 的行。
现在我们将使用 java.util.concurrent
包的 TimeUnit
类。 TimeUnit 表示给定粒度单位的持续时间,并提供实用方法来跨单位转换并在这些单位中执行计时和延迟操作。 TimeUnit
类从 JDK 1.5
开始可用。
DateDiffExp1.java
package org.websparrow;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;
public class DateDiffExp1 {
public static void main(String[] args) {
// set the new date format
DateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date currentDate = new Date();
Date date1 = null;
Date date2 = null;
try {
// calculating the difference b/w startDate and endDate
String startDate = "01-01-2016";
String endDate = simpleDateFormat.format(currentDate);
date1 = simpleDateFormat.parse(startDate);
date2 = simpleDateFormat.parse(endDate);
long getDiff = date2.getTime() - date1.getTime();
// using TimeUnit class from java.util.concurrent package
long getDaysDiff = TimeUnit.MILLISECONDS.toDays(getDiff);
System.out.println("Differance between date " + startDate + " and " + endDate + " is " + getDaysDiff + " days.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出:
Differance between date 01-01-2016 and 26-12-2016 is 360 days.
####手动计算
在此示例中,我们将使用手动计算来计算日期差异。在手动计算之前,必须知道这些单位。
纳秒定义为千分之一微秒,微秒定义为千分之一毫秒,毫秒定义为千分之一秒,一分钟定义为六十秒,一小时定义为六十分钟,一天定义为二十四小时。
24 小时 = 1 天
60 分钟 = 1 小时
60 秒 = 1 分钟
1000 毫秒 = 1 秒
DateDiffExp.java
package org.websparrow;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateDiffExp {
public static void main(String[] args) {
DateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date currentDate = new Date();
Date date1 = null;
Date date2 = null;
try {
String startDate = "01-01-2016";
String endDate = simpleDateFormat.format(currentDate);
date1 = simpleDateFormat.parse(startDate);
date2 = simpleDateFormat.parse(endDate);
long getDiff = date2.getTime() - date1.getTime();
long getDaysDiff = getDiff / (24 * 60 * 60 * 1000);
System.out.println("Differance between date " + startDate + " and " + endDate + " is " + getDaysDiff + " days.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出:
Differance between date 01-01-2016 and 26-12-2016 is 360 days.
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.websparrow.org/java/how-to-calculate-difference-between-two-dates-in-java
内容来源于网络,如有侵权,请联系作者删除!