2012-03-22 3 views
1

스프링 표현 언어로 날짜를 조작하려면 어떻게해야합니까?SpEL에서 날짜를 어떻게 조작합니까?

<si:service-activator id="entryReader" expression="@blogEntryReader.getEntriesBetweenDates(payload.startDate, payload.startDate **PLUS 30 DAYS**)" input-channel="blogEntryReaderChannel"/> 

답변

3

불행히도 java.util.Calendar에는 빌더 API가 없으므로 SpEL 친화적이지 않습니다. 하나 개의 솔루션은 ... 헬퍼 클래스를 사용하는 SpEL을에서 다음

public static class CalendarManip { 

    public static Date addDays(Date date, int days) { 
     Calendar cal = Calendar.getInstance(); 
     cal.setTime(date); 
     cal.add(Calendar.DAY_OF_YEAR, 30); 
     return cal.getTime(); 
    } 
} 

... 것

T(foo.CalendarManip).addDays(payload.startDate, 30) 

또한 사용할 수있는 < INT-그루비 : 스크립트/> 당신이 돈이 ' 헬퍼 클래스를 원한다.

1
T(org.apache.commons.lang.time.DateUtils).addDays(payload.startDate, 30) 
+0

지원이 작동하는 이유를 자세히 설명 할 수 있습니까? –

+0

대답을 설명하십시오. – Gwenc37

+0

좋은 간단한 해결책은 여기 있습니다 ... 나는 여기에서 일어나는 일이 매우 간단하다고 생각했을 것입니다 ...? 아파치 커먼즈의 DateUtils 클래스에서 정적 메소드 addDays 호출하기 –