如何在Spring Expression语言中进行日期操作?
<si:service-activator id="entryReader" expression="@blogEntryReader.getEntriesBetweenDates(payload.startDate, payload.startDate **PLUS 30 DAYS**)" input-channel="blogEntryReaderChannel"/>
答案 0 :(得分:3)
不幸的是,java.util.Calendar没有构建器API,因此它不是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();
}
}
然后,在SpEL ......
T(foo.CalendarManip).addDays(payload.startDate, 30)
你也可以使用&lt; int-groovy:script /&gt;如果你不想要一个助手类。
答案 1 :(得分:1)
T(org.apache.commons.lang.time.DateUtils).addDays(payload.startDate, 30)
答案 2 :(得分:0)
如果您有访问权限,则可以通过编写所需的日期操作函数并将其注入SpelEvaluationContext来进行更为简洁的方法: