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

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

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

SimpleDateFormat是Java中处理日期格式的一个类,它可以将日期对象格式化为指定格式的字符串,也可以将字符串解析为日期对象。equals()方法则用于判断当前日期格式化对象是否等于另一个日期格式化对象。

方法介绍
equals()方法
public boolean equals(Object obj)

equals()方法将当前日期格式化对象和另一个日期格式化对象进行比较,若它们所代表的日期格式相同则返回true,否则返回false

示例

下面是一个使用SimpleDateFormat的示例,展示了如何创建两个日期格式化对象并比较它们是否相同。

import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
    public static void main(String[] args) {
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");

        Date date = new Date();
        String formattedDate = sdf1.format(date);

        // 判断两个日期格式化对象是否相同
        boolean result = sdf1.equals(sdf2);
        System.out.println("sdf1 is equal to sdf2: " + result);

        result = sdf1.equals(new Object());
        System.out.println("sdf1 is equal to Object: " + result);

        result = sdf1.equals(null);
        System.out.println("sdf1 is equal to null: " + result);
    }
}

输出结果如下:

sdf1 is equal to sdf2: false
sdf1 is equal to Object: false
sdf1 is equal to null: false

可以看到,以上比较都返回了false,因为它们所代表的日期格式不同,即使是相同的格式字符串也不行。此时需要调用toPattern()方法来比较格式字符串,如下所示:

import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
    public static void main(String[] args) {
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");

        Date date = new Date();
        String formattedDate = sdf1.format(date);

        // 判断两个日期格式化对象是否相同
        boolean result = sdf1.toPattern().equals(sdf2.toPattern());
        System.out.println("sdf1 is equal to sdf2: " + result);

        result = sdf1.equals(new Object());
        System.out.println("sdf1 is equal to Object: " + result);

        result = sdf1.equals(null);
        System.out.println("sdf1 is equal to null: " + result);
    }
}

输出结果如下:

sdf1 is equal to sdf2: true
sdf1 is equal to Object: false
sdf1 is equal to null: false

可以看到,只有第一个比较返回了true,这是因为它们都代表了yyyy-MM-dd这个日期格式。而第二个和第三个比较返回了false,因为它们所代表的对象类型不同。