如何在 Spring Expression 语言中进行日期操作?
<si:service-activator id="entryReader" expression="@blogEntryReader.getEntriesBetweenDates(payload.startDate, payload.startDate **PLUS 30 DAYS**)" input-channel="blogEntryReaderChannel"/>
如何在 Spring Expression 语言中进行日期操作?
<si:service-activator id="entryReader" expression="@blogEntryReader.getEntriesBetweenDates(payload.startDate, payload.startDate **PLUS 30 DAYS**)" input-channel="blogEntryReaderChannel"/>
不幸的是,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)
如果您不想要辅助类,也可以使用 <int-groovy:script/> 。
T(org.apache.commons.lang.time.DateUtils).addDays(payload.startDate, 30)
如果你有一个更简洁的方法来做到这一点,那就是编写你需要的日期操作函数并将它们注入到 SpelEvaluationContext 中: