Source:
<code>public FEELFnResult<TemporalAccessor> invoke(@ParameterName( "date" ) TemporalAccessor date, @ParameterName( "time" ) TemporalAccessor time) { if ( date == null ) { return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "date", "cannot be null")); } if ( !(date instanceof LocalDate) ) { <START> date = BuiltInFunctions.getFunction(DateFunction.class).invoke(date).getOrElse(null); <END> if (!(date instanceof LocalDate)) { return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "date", "must be an instance of LocalDate (or must be possible to convert to a FEEL date using built-in date(date) )")); } } if ( time == null ) { return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "time", "cannot be null")); } if ( !(time instanceof LocalTime || time instanceof OffsetTime) ) { return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "time", "must be an instance of LocalTime or OffsetTime")); } try { if( date instanceof LocalDate && time instanceof LocalTime ) { return FEELFnResult.ofResult( LocalDateTime.of( (LocalDate) date, (LocalTime) time ) ); } else if( date instanceof LocalDate && time instanceof OffsetTime ) { return FEELFnResult.ofResult( ZonedDateTime.of( (LocalDate) date, LocalTime.from( time ), ZoneOffset.from( time ) ) ); } return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "cannot invoke function for the input parameters")); } catch (DateTimeException e) { return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "input parameters date-parsing exception", e)); } }</code><technical_language>I this works @tarilabs , specially in terms of performance cost, I if LocalDate.from( date ) static method. returns local date of a temporal accessor, ignoring time components..</technical_language>

Target:
public FEELFnResult<TemporalAccessor> invoke(@ParameterName( "date" ) TemporalAccessor date, @ParameterName( "time" ) TemporalAccessor time) { if ( date == null ) { return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "date", "cannot be null")); } if ( !(date instanceof LocalDate) ) { date = date.query(TemporalQueries.localDate()); if (date == null) { return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "date", "must be an instance of LocalDate (or must be possible to convert to a FEEL date using built-in date(date) )")); } } if ( time == null ) { return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "time", "cannot be null")); } if ( !(time instanceof LocalTime || time instanceof OffsetTime) ) { return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "time", "must be an instance of LocalTime or OffsetTime")); } try { if( date instanceof LocalDate && time instanceof LocalTime ) { return FEELFnResult.ofResult( LocalDateTime.of( (LocalDate) date, (LocalTime) time ) ); } else if( date instanceof LocalDate && time instanceof OffsetTime ) { return FEELFnResult.ofResult( ZonedDateTime.of( (LocalDate) date, LocalTime.from( time ), ZoneOffset.from( time ) ) ); } return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "cannot invoke function for the input parameters")); } catch (DateTimeException e) { return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "input parameters date-parsing exception", e)); } }