O que IFormatProvider faz?

Eu estava brincando com o método Datetime.ParseExact e ele quer um IFormatProvider ... Funciona inserindo null, mas o que exatamente