public static Field randomDateTimeField(final String name,
                                            final LocalDateTime startDateInc,
                                            final LocalDateTime endDateExc,
                                            final String formatStr) {
        try {
            Objects.requireNonNull(startDateInc);
            Objects.requireNonNull(endDateExc);
            Objects.requireNonNull(formatStr);
            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(formatStr);
            return randomDateTimeField(name, startDateInc, endDateExc, dateTimeFormatter);
        } catch (Exception e) {
            throw new RuntimeException(Utils.message("Error building randomDateTimeField, {}, {}",
                    name,
                    e.getMessage()), e);
        }
    }
A field to produce a sequence of random datetime values within a defined time range.
The formatter controls the output format.

@param name         Field name for use in the header
@param startDateInc The start date for the random times (inclusive)
@param endDateExc   The end date of random times (exclusive)
@param formatStr    Format string conforming to the format expected by {@link DateTimeFormatter}
@return A complete {@link Field}
stroom-test-common/src/main/java/stroom/test/common/data/DataGenerator.java