java - How to compare dates using Spring Expression Language? -


can give me examples of how compare dates using spring expression languange (spel)?

i have searched far , wide , nothing find seems fit purpose. i'm using java 8 , have response object zoneddatetime field somehow need compare string in form of yyyy-mm-dd -- ie: before, after, equal, etc.

zoneddatetime zoneddatetime = zoneddatetime.now(zoneid.systemdefault()); hashmap<string, object> testhash = new hashmap<>(); testhash.put("datefield", zoneddatetime);  expressionparser parser = new spelexpressionparser(); standardevaluationcontext context = new standardevaluationcontext(); context.setvariables(testhash);  expression expression = parser.parseexpression("#datefield > '2016-01-01'"); 

the above not working. able show me example does?

below code date comparison using java 8 java.time package , spring expression language. hope helps.

import java.time.zoneid; import java.time.zoneddatetime; import java.time.format.datetimeformatter; import org.junit.test; import org.springframework.expression.evaluationcontext; import org.springframework.expression.expression; import org.springframework.expression.expressionparser; import org.springframework.expression.spel.standard.spelexpressionparser; import org.springframework.expression.spel.support.standardevaluationcontext; import junit.framework.assert;  public class testdatespel {  @test public void testcomparedate() throws exception {     zoneddatetime zoneddatetime = zoneddatetime.now(zoneid.systemdefault());     string otherdate = "2010-12-25 12:00";     datetimeformatter formatter = datetimeformatter.ofpattern("yyyy-mm-dd hh:mm").withzone(zoneid.systemdefault());     zoneddatetime zdtotherdate = zoneddatetime.parse(otherdate, formatter);     //spel context     evaluationcontext context = new standardevaluationcontext(new zoneddatetimeutil());     context.setvariable("dateone", zoneddatetime);     context.setvariable("datetwo", zdtotherdate);     //spel parser     expressionparser parser = new spelexpressionparser();     expression exp = parser.parseexpression("comparedate(#dateone, #datetwo)");     int value = (integer) exp.getvalue(context);     //"zoneddatetime" after "zdtotherdate"     assert.assertequals(1, value);   } }  class zoneddatetimeutil { public int comparedate(zoneddatetime dateone, zoneddatetime datetwo){     return dateone.compareto(datetwo);    } } 

Comments