Вроде получилось. Для интересующихся:
Для изменения точности расширил класс com.haulmont.cuba.gui.components.filter.Param
Листинг ParamExt
public ParamExt(Builder builder) {
super(builder);
}
@Override
protected Component createDateField(Class javaClass, ValueProperty valueProperty) {
UserSession userSession = userSessionSource.getUserSession();
boolean supportTimezones = false;
boolean dateOnly = false;
if (property != null) {
TemporalType tt = (TemporalType) property.getAnnotations().get(MetadataTools.TEMPORAL_ANN_NAME);
dateOnly = tt == TemporalType.DATE || LocalDate.class.equals(javaClass);
Object ignoreUserTimeZone = metadataTools.getMetaAnnotationValue(property, IgnoreUserTimeZone.class);
supportTimezones = !dateOnly && !Boolean.TRUE.equals(ignoreUserTimeZone);
} else if (LocalDate.class.equals(javaClass)) {
dateOnly = true;
} else if (java.sql.Date.class.equals(javaClass)) {
dateOnly = true;
if (useUserTimeZone) {
supportTimezones = true;
}
} else {
supportTimezones = true;
}
if (inExpr) {
ListEditor listEditor = uiComponents.create(ListEditor.class);
ListEditor.ItemType itemType = dateOnly ? ListEditor.ItemType.DATE : ListEditor.ItemType.DATETIME;
listEditor.setItemType(itemType);
if (userSession.getTimeZone() != null && supportTimezones) {
listEditor.setTimeZone(userSession.getTimeZone());
}
initListEditor(listEditor, valueProperty);
return listEditor;
}
DateField<Object> dateField = uiComponents.create(DateField.NAME);
dateField.setDatatype(datatypeRegistry.getNN(javaClass));
DateField.Resolution resolution;
String formatStr;
if (dateOnly) {
resolution = com.haulmont.cuba.gui.components.DateField.Resolution.DAY;
formatStr = messages.getMainMessage("dateFormat");
} else {
resolution = com.haulmont.cuba.gui.components.DateField.Resolution.SEC;
formatStr = messages.getMainMessage("dateTimeFormat");
}
dateField.setResolution(resolution);
dateField.setDateFormat(formatStr);
if (userSession.getTimeZone() != null && supportTimezones) {
dateField.setTimeZone(userSession.getTimeZone());
}
dateField.addValueChangeListener(e ->
_setValue(e.getValue(), valueProperty));
dateField.setValue(_getValue(valueProperty));
return dateField;
}
Если конкретно, то поменял точность при создании поля, а также указал другое форматирование даты в главном пакете сообщений.
resolution = com.haulmont.cuba.gui.components.DateField.Resolution.SEC
formatStr = messages.getMainMessage("dateTimeFormat")
После этого изменил используемый бин на кастомный.
Пока поломок и багов связанных с изменениями не обнаружил. Если кто-то более опытный укажет на них, то буду благодарен.