class DateTimeValue extends TemporalValue<ZonedDateTime,DateTimeValue> {

    public static DateTimeValue parse( CharSequence text, Supplier<ZoneId> defaultZone,
            CSVHeaderInformation fieldsFromHeader )
    {
        if ( fieldsFromHeader != null )
        {
            if ( !(fieldsFromHeader instanceof TimeCSVHeaderInformation) )
            {
                throw new IllegalStateException( "Wrong header information type: " + fieldsFromHeader );
            }
            // Override defaultZone
            defaultZone = ((TimeCSVHeaderInformation) fieldsFromHeader).zoneSupplier( defaultZone );
        }
        return parse( DateTimeValue.class, PATTERN, DateTimeValue::parse, text, defaultZone );
    }

    private  DateTimeValue( ZonedDateTime value );

}