2017-05-05 4 views
-1

(또는 다른 임시 시간)과 Java 8 시간 API 내에서 YearMonth을 비교하는 편리한 방법이 있습니까?Java 8 Time API : YearMonth와 LocalDate를 비교합니까?

내가 잘못된 장소를 보았는지, 그런 편의 메소드가 실제로 존재하는지에 상관없이, TemporalAccessors를 지원하는 메소드가 너무 많아서 궁금합니다. 모든 힌트를 높이 평가합니다.

질문이 명확하게하려면 내가 monthyear의 비교 (모두의 공통 분모)에만 관심이 YearMonth LocalDate에 비교한다면.

답변

1

비교에 필요한 공통 분모 유형으로 한 시간을 래핑하는 것이 매우 편리합니다. LocalDateLocalDateYearMonth를 비교 먼저 YearMonth로 변환된다

LocalDate someDate = ... 
YearMonth someMonth = ... 

YearMonth.from(someDate).equals(someMonth) 

// or compareTo if required 

그것에 대해 더 생각, 아마 비교가 특정하게 유지되는 보편적 인 compare -method이 아니라고 의미가 있습니다. 다른 사람이 공통 분모를 비교하려고한다는 보장은 없습니다.

+4

당신이 대답으로이 설명을 추가 한 이유는 무엇입니까? 질문의 설명에이 내용을 추가해야합니다. –

+0

입니다. 질문에 대한 답변이기 때문에. – Roland

+0

@NeerajJain, 누군가가 물어 본 후 몇 분 안에 자신의 질문에 답하는 것을 보았습니다. 왜 그런지 모르지만, 일반적으로 괜찮다고 여겨집니다. –

0

YearMonth와 LocalDate는 LocalDate가 yearMont 클래스에 정의되지 않은 날의 구성원을 보유하고 있기 때문에 직접 비교할 수 없습니다.

당신은 쓸 수 있습니다 자신의

private boolean checkTemporal(YearMonth yM, LocalDate lD) { 

    return yM.getMonthValue() == lD.getMonthValue() && yM.getYear() == lD.getYear(); 
}