Declaration
public static string ToIsoStringCustom(
    this DateTime datetime,
    IsoDatePrecision precision = IsoDatePrecision.Full,
    char? charInDate = -,
    char? charInTime = :,
    char? charBetween =  ,
    bool includeTimezone = false
)Summary
            Returns a string representation of the date/time in an ISO-8601-like format. The date/time components are always ordered from
            largest (year) to smallest (nanoseconds), and they are always specified as a fixed-width numeric value. The separators between
            the parts can be customized.
            
Parameters
| this DateTime | datetime | Date/time to convert. | 
| IsoDatePrecision | precision | Which date/time components are to be included. The values are truncated, not rounded. | 
| char? | charInDate | The character to insert between years, months and days, or null for none. | 
| char? | charInTime | The character to insert between hours, minutes and seconds (including timezone offset), or null for none. | 
| char? | charBetween | The character to insert between the date and the time part, or null for none (which is never valid in ISO-8601). | 
| bool | includeTimezone | Specifies whether a suffix indicating date/time kind (local/utc/unspecified) and, for local times, a UTC offset, is appended. |