如何比较LocalDate和Calendar类的对象?

时间:2017-04-14 13:43:39

标签: java localdate java-calendar

我正在尝试比较具有不同类型的两个对象的日期。有没有办法将Calendar对象转换为LocalDater,反之亦然?

谢谢:)

public class ABC{

    public static void main(String args[]){
        Calendar c1= Calendar.getInstance();
        LocalDate c2= LocalDate.now();      
        System.out.println(c1.compareTo(c2));
    }
}

2 个答案:

答案 0 :(得分:4)

您需要比较日期,所以让我们这样做。

使用this answer作为参考:

Calendar calendar = Calendar.getInstance();
LocalDate localDate = LocalDate.now();

LocalDate calendarAsLocalDate = calendar.toInstant()
    .atZone(calendar.getTimeZone().toZoneId())
    .toLocalDate();

return calendarAsLocalDate.compareTo(localDate)

答案 1 :(得分:1)

    private int compare(Calendar c1, LocalDate c2) {
        int yearCompare = ((Integer) c1.get(Calendar.YEAR)).compareTo(c2.getYear());
        if (yearCompare == 0)
            return ((Integer) c1.get(Calendar.DAY_OF_YEAR)).compareTo(c2.getDayOfYear());
        else
            return yearCompare;
    }