Прежде всего, "09/19/yyyy"
- это , а не - допустимая строка, которая может быть проанализирована до DateTime
, и она также должна выдавать исключение в IIS.
Во-вторых, Convert.ToDateTime(string)
перегрузка использует CurrentCulture
настройки на вашей машине.Если ваши VS и IIS на разных машинах, проверьте их настройки CurrentCulture
на обеих машинах.Я предполагаю, что они весьма различны, и один из них не имеет "dd/M/yyyy"
в качестве стандартного формата даты.
С другой стороны, чтобы предотвратить этот вид операций разбора, вы можете использовать DateTime.ParseExact
метод перегружает , и вы можете указать точный формат и правильную (использующую /
в качестве DateSeparator
) информацию о культуре.
Также следует помнить, что разница между Спецификаторы M
и MM
.Для однозначных номеров месяцев спецификатор MM
будет генерировать номер месяца с начальным нулем (например, 09
), но спецификатор M
не будет.
string date = "19/9/2019";
DateTime myDate = DateTime.ParseExact("dd/M/yyyy", date, CultureInfo.InvariantCulture);
или
string date = "19/09/2019";
DateTime myDate = DateTime.ParseExact("dd/MM/yyyy", date, CultureInfo.InvariantCulture);