在 Java 中减去两个日期

2022-09-01 10:39:52

可能的重复:
计算两个 Java 日期实例之间的差异

我知道这可能是一个重复的线程。但我试图找出一种方法来计算两个日期之间的差异。从 jquery 开始,日期字符串的格式为 。我把它读成一个字符串,然后像这样转换为java Date'yyyy-mm-dd'

Date d1 = new SimpleDateFormat("yyyy-M-dd").parse((String) request.getParameter(date1));
Date d2 = new SimpleDateFormat("yyyy-M-dd").parse((String) request.getParameter(date2));

我想计算这两个日期之间的天数差。

注意:我不能使用第三方API,因为那些需要审查。


答案 1

编辑 2018-05-28我已将示例更改为使用 Java 8 的时间 API:

LocalDate d1 = LocalDate.parse("2018-05-26", DateTimeFormatter.ISO_LOCAL_DATE);
LocalDate d2 = LocalDate.parse("2018-05-28", DateTimeFormatter.ISO_LOCAL_DATE);
Duration diff = Duration.between(d1.atStartOfDay(), d2.atStartOfDay());
long diffDays = diff.toDays();

答案 2

假设您只能使用 ,则可以执行以下操作:Date

Date diff = new Date(d2.getTime() - d1.getTime());

在这里,您将以毫秒为单位计算自“纪元”以来的差异,并在与纪元的偏移处创建一个新的 Date 对象。就像其他人说的:重复问题中的答案可能是更好的选择(如果你没有被束缚)。Date