Как вы говорите, вы можете в закрытой среде вызывать методы без какого-либо предоставленного IFormatProvider.
Когда вы пишете, вы можете предоставить объект CultureInfo следующим образом:
Console.WriteLine(String.Format(CultureInfo.CurrentCulture, "{0}", DateTime.Now));
Console.WriteLine(String.Format(new CultureInfo("en-US"), "{0}", DateTime.Now));
Для меня это будет отображать дату двумя различными способами, так как моя CurrentCulture выглядит так:
2009-05-28 13: 12: 43
5/28/2009 13:12:43
CultureInfo.CurrentCulture обрабатывает форматирование дат и т. Д. И предоставляется из настроек на вашем текущем компьютере.
CurrentCulture.CurrentUiCulture имеет отношение к локализации, то есть к переводу. Значение, которое отображается в меню и т. Д. В Windows.
Я предполагаю, что поведение методов по умолчанию заключается в использовании CurrentCulture, если ни один из них не указан.