Timer dates not in ISO8601 format

I am seeing some inconsistencies on how the timer dates are persisted for repeat timers.
If just a duration is defined, such as, R/PT10M, the repeat field is defined with a start datetime that is in ISO8601 format.

If the start/duration or start/end syntax is specified, such as R/${startDate}/${duration}, the startDate datetime variable is converted into a String but it is not in ISO8601 format. Instead it is using the format, EEE MMM dd kk:mm:ss z

Is this a bug? Should it consistently be using ISO-8601 format?


Could you point to the class(es) and line numbers?
We should make the date handling consistent when it isn’t.

Best regards,


TimerUtil.createTimerEntityForTimerEventDefinition calls into JuelExpression.getValue (VariableScope)

This ultimately ends up in de.odysseus.el.misc.TypeConverterImpl.coerceToString(). It calls the Date object’s toString() method which returns the String that is not in ISO-8601 format.

TypeConverterImpl.coerceToString(Object) line: 260

…<cut rest of stack trace)
JuelExpression.getValue(VariableScope) line: 49
TimerUtil.createTimerEntityForTimerEventDefinition line 95

Ok right. We would need to have some custom logic in the JUEL library to solve this I would think. Do you have ideas on how to solve this?

Best regards,