可比较的CompareTo对于日期不起作用

时间:2019-08-08 10:05:02

标签: java

class Person implements  Comparable<Person>{
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("M/d/yyyy");
    private String name;
    private String city;
    private int age;
    private String dob;

    public Person(String name, String city, int age , String dob) {
        this.name = name;
        this.city = city;
        this.age = age;
        this.dob = dob;
    }

    // GETTERS/SETTERS

    @Override
    public int compareTo(Person p) {
        // TODO Auto-generated method stub
        return LocalDate.parse(p.getDob(),formatter).compareTo(LocalDate.parse(p.getDob(),formatter));
    }
}

1 个答案:

答案 0 :(得分:2)

return LocalDate.parse(p.getDob(),formatter).compareTo(LocalDate.parse(p.getDob(),formatter));

请注意,此处您正在将p的DOB与p的DOB进行比较。这将始终返回0

像这样尝试:

return LocalDate.parse(this.getDob(),formatter).compareTo(LocalDate.parse(p.getDob(),formatter));

还要注意,您正在比较完整的DOB,包括不符合您要求的月份。