Как использовать IFormatProvider в DateTime.ParseExact

Почему мы должны использовать IFormatProvider в DateTime.ParseExact если уже есть параметр формата?

DateTime.ParseExact(inputString, format, cultureInfo);

2 ответа

Решение

Параметр format указывает, какой шаблон использовать, но ничего не говорит о том, какой календарь, названия месяцев, краткий формат даты и т. Д. Использовать. Это до IFormatProvider,

Например, предположим, что вы хотите проанализировать значение с шаблоном "dd MMMM yyyy" - Какие названия месяцев вы ожидаете работать? Если вы используете название месяца "Февраль", но вы работаете на машине с системной культурой французского языка, она потерпит неудачу - вам потребуется указать английскую культуру (или инвариантную культуру), чтобы получить ее Работа. Точно так же вы можете указать шаблон "d" означать формат короткой даты - но какой формат короткой даты?

Даже на используемый вами календарь влияет поставщик формата: значение может быть проанализировано в одинаковые значения года, месяца и дня в двух культурах, но значение этих значений в хиджри-календаре будет сильно отличаться от григорианского, пример.

Простой пример: /

/ это не просто символ, а разделитель даты, который зависит от культуры.

Другие вопросы по тегам