class DateUtil extends AbstractCaller {

    @Description("Returns the difference between an ISO string minuend and subtrahend date/time in a specified date component<br/>"
            + "The following date components are defined:"
            + DATE_TIME_COMPONENTS_TABLE
            + "Example: #{diffDateTimeISO(minuend, subtrahend, dateComponent)}")
    @UtilityMethod
    public long diffDateTimeISO(String minuend, String subtrahend, String dateComponent) {
        Objects.requireNonNull(dateComponent, "datePart argument is null");
        Objects.requireNonNull(minuend, "The first argument is null");
        Objects.requireNonNull(subtrahend, "The second argument is null");
        return diffDateTime(DateTimeUtility.toLocalDateTime(ZonedDateTime.parse(minuend)),
                DateTimeUtility.toLocalDateTime(ZonedDateTime.parse(subtrahend)), dateComponent);
    }

}