📅  最后修改于: 2023-12-03 15:01:51.893000             🧑  作者: Mango
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。