By researching further of granite coral datepicker, found that value uses Expression Language using getExpressionHelper, hence value transform into design dialog value.
String value = cmp.getValue().val(
cmp.getExpressionHelper().getString(cfg.get("value", "")));On the other hand, dateFormat is evaluated as static string.
attrs.add("displayformat",
i18n.getVar(cfg.get("displayedFormat", String.class)));
It appears that this behavior is expected. The reason you're encountering random values is due to certain characters coinciding with date format placeholders like 'D', 'e', and 'a'. As a result, these characters are being substituted with the corresponding values.
Reference:
/libs/granite/ui/components/coral/foundation/form/datepicker/init.jsp
/libs/granite/ui/components/coral/foundation/form/datepicker/render.jsp