toISOTime(opts = {}) {
    if (!this.isValid) return null;

    const millis = this.toMillis();
    if (millis < 0 || millis >= 86400000) return null;

    opts = {
      suppressMilliseconds: false,
      suppressSeconds: false,
      includePrefix: false,
      format: "extended",
      ...opts,
      includeOffset: false,
    };

    const dateTime = DateTime.fromMillis(millis, { zone: "UTC" });
    return dateTime.toISOTime(opts);
  }
Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day.
Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours.
@see https://en.wikipedia.org/wiki/ISO_8601#Times
@param {Object} opts - options
@param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0
@param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0
@param {boolean} [opts.includePrefix=false] - include the `T` prefix
@param {string} [opts.format='extended'] - choose between the basic and extended format
@example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000'
@example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00'
@example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00'
@example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000'
@example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000'
@return {string}