Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java两个日期相减计算天数


在 Java 中,计算两个日期之间的天数差可以通过多种方式实现。下面将介绍三种常见的实现方式,包括手动计算、使用 Java 8 的 java.time 库以及使用第三方库 Joda-Time。

手动计算方式

这种方法涉及到将日期转换为毫秒数,然后计算两个日期的毫秒差,最后将毫秒差转换为天数。

import java.util.Date;

public class DateDifferenceManual {
    public static void main(String[] args) {
        Date startDate = new Date(); // 设置开始日期
        Date endDate = new Date();   // 设置结束日期

        long startTime = startDate.getTime();
        long endTime = endDate.getTime();

        long diffTime = endTime - startTime;
        long days = diffTime / (1000 * 60 * 60 * 24);

        System.out.println("Days difference: " + days);
    }
}

使用 java.time 库 (Java 8 及更高版本)

Java 8 引入了 java.time 库,提供了更简洁和功能强大的日期和时间操作方式。

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class DateDifferenceJavaTime {
    public static void main(String[] args) {
        LocalDate startDate = LocalDate.now();         // 设置开始日期
        LocalDate endDate = LocalDate.now().plusDays(10); // 设置结束日期

        long days = ChronoUnit.DAYS.between(startDate, endDate);

        System.out.println("Days difference: " + days);
    }
}

Maven 依赖:

<dependency>
    <groupId>org.openjdk.jmh</groupId>
    <artifactId>openjdk-jmh</artifactId>
    <version>1.36</version>
</dependency>

Gradle 依赖:

implementation 'org.openjdk.jmh:openjdk-jmh:1.36'

使用 Joda-Time 库

Joda-Time 是在 Java 8 之前广受欢迎的第三方日期和时间处理库。

import org.joda.time.DateTime;
import org.joda.time.Days;

public class DateDifferenceJodaTime {
    public static void main(String[] args) {
        DateTime startDate = DateTime.now();         // 设置开始日期
        DateTime endDate = DateTime.now().plusDays(10); // 设置结束日期

        int days = Days.daysBetween(startDate, endDate).getDays();

        System.out.println("Days difference: " + days);
    }
}

Maven 依赖:

<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.10.12</version>
</dependency>

Gradle 依赖:

implementation 'joda-time:joda-time:2.10.12'

以上是三种计算两个日期之间天数差的方式,每种方式都有其适用场景和优劣势。根据你的项目需求和已有的依赖,选择最适合的方式即可。

Calendar类的getTimeInMillis()方法获取两个日期的毫秒数,然后相减并除以一天的毫秒数,即可得到两个日期之间的天数。性能 ...
下面我将介绍四种常用的方法,包括使用Java8日期时间API,使用Joda-Time库,使用ApacheCommons库以及手动计算的方法。 ...
以下是使用Java实现计算两个日期之间的天数差异的不同方法,包括使用第三方库的情况。daysBetween()`方法,直接计算两个`Loca ...
LocalDate`类中,有一个`minusDays`方法可以直接从日期中减去指定的天数。示例代码:###方法二:使用plus方法和负数天数 ...
同时,我会为每种方式列出可能需要的第三方库的Maven和Gradle依赖坐标。ChronoUnit在Java8及以后的版本中,引入了新的日期 ...