📜  Java中的 ChronoPeriod equals() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:01:51.893000             🧑  作者: Mango

Java中的 ChronoPeriod equals() 方法及示例

Java中的ChronoPeriod类提供了equals()方法,用于比较两个时间段是否相等。该方法会比较时间段的年、月、日三个维度。如果两个时间段每个维度的值都相等,则认为这两个时间段相等。

下面是equals()方法的方法签名:

boolean equals(Object obj)

该方法接收一个Object类型参数,表示需要比较的另一个时间段对象。

示例代码如下:

import java.time.LocalDate;
import java.time.Period;

public class ChronoPeriodDemo {
    public static void main(String[] args) {
        // 创建时间段1
        Period period1 = Period.of(1,2,3);

        // 创建时间段2
        Period period2 = Period.of(1,2,3);

        // 比较时间段是否相等
        boolean isEqual = period1.equals(period2);

        System.out.println("period1: " + period1);
        System.out.println("period2: " + period2);
        System.out.println("period1 equals period2: " + isEqual);
    }
}

输出结果如下:

period1: P1Y2M3D
period2: P1Y2M3D
period1 equals period2: true

可以看到,我们创建了两个时间段,并通过equals()方法比较这两个时间段是否相等,最终结果为true,即这两个时间段相等。

需要注意的是,equals()方法比较的是两个时间段的值是否相等,而不是两个对象是否是同一个对象。因此,如果两个时间段的值相等,但它们分别是通过不同的方式创建的,equals()方法仍然会返回true。

示例代码如下:

import java.time.LocalDate;
import java.time.Period;

public class ChronoPeriodDemo {
    public static void main(String[] args) {
        // 创建时间段1
        Period period1 = Period.of(1,2,3);

        // 创建时间段2
        Period period2 = Period.parse("P1Y2M3D");

        // 比较时间段是否相等
        boolean isEqual = period1.equals(period2);

        System.out.println("period1: " + period1);
        System.out.println("period2: " + period2);
        System.out.println("period1 equals period2: " + isEqual);
    }
}

输出结果如下:

period1: P1Y2M3D
period2: P1Y2M3D
period1 equals period2: true

可以看到,我们使用of()方法和parse()方法创建了两个时间段,它们分别是通过不同的方式创建的,但它们的值相等,因此equals()方法返回true。