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
Post a Comment