code: public static ZonedDateTime toDateTime(Object value, EvaluationContext ctx) {
          if (value instanceof String) {
              Temporal temporal = ctx.getDateParser().auto((String) value);
              if (temporal != null) {
                  return toDateTime(temporal, ctx);
              }
          }
          else if (value instanceof LocalDate) {
              return ((LocalDate) value).atStartOfDay(ctx.getTimezone());
          }
          else if (value instanceof ZonedDateTime) {
              return ((ZonedDateTime) value).withZoneSameInstant(ctx.getTimezone());
          }
  
          throw new EvaluationError("Can't convert '" + value + "' to a datetime");
      }
docs: Tries conversion of any value to a date