如何在Java中计算两个日期之间的差异

x33g5p2x  于9个月前 转载在 Java  
字(2.2k)|赞(0)|评价(0)|浏览(81)

在此页面上,我们将计算两个日期之间的差异。有时我们的项目需要处理计算或更新日期差异的任何页面。

在这里,我们将讨论一个简单的场景,我们需要计算两个日期之间的差异。假设检索重新编码表单表并将其显示在 JSP 上,并以表格形式出现并具有日期列。标记整个表和当前日期列差异大于 7 的行。

现在我们将使用 java.util.concurrent 包的 TimeUnit 类。 TimeUnit 表示给定粒度单位的持续时间,并提供实用方法来跨单位转换并在这些单位中执行计时和延迟操作。 TimeUnit 类从 JDK 1.5 开始可用。

使用 TimeUnit 类进行计算

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.

相关文章

热门文章

更多